質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

1回答

1856閲覧

ruby じゃんけんプログラムについて

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2020/03/30 23:45

Rubyでじゃんけんのプログラムを作成しているのですが、動作自体はうまくいくものの
じゃんけんの結果が数字のまま出てきてしまいます。

keyとvalueを与えて
1はグー、2はチョキ、3はパーという結果にしたいのですが
どうやって実装すればいいかわかりません。

どなたかぜひ教えていただきたいです。

Ruby

1puts "じゃんけんをしましょう" 2puts "グー: 1 チョキ: 2 パー: 3" 3puts " " 4puts "最初はグー、じゃんけん、、、" 5 6 7def janken 8 9my_hand = gets.to_i 10enemy_hand = rand(1..3) 11 12 13if my_hand == enemy_hand 14 puts "あなた: #{my_hand} 敵: #{enemy_hand}" 15 puts "あいこです!" 16elsif (my_hand == 1 && enemy_hand == 2) || (my_hand == 2 && enemy_hand == 3) || (my_hand == 3 && enemy_hand == 1) 17 puts "あなた: #{my_hand} 敵: #{enemy_hand}" 18 puts "やったね!あなたの勝ちです!" 19else 20 puts "あなた: #{my_hand} 敵: #{enemy_hand}" 21 puts "残念・・・。あなたの負けです。" 22end 23end 24 25puts janken

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taichi730

2020/03/30 23:58

何がどう分からないのですか?
nanami12

2020/03/31 00:06 編集

おそらくですが実行すると例えばグーを選択すると結果が じゃんけんをしましょう グー: 1 チョキ: 2 パー: 3 最初はグー、じゃんけん、、、 1 あなた: 1 敵: 1 あい こです! を 最初はグー、じゃんけん、、、 グー あなた グー 敵 グーにしたいのでしょうか
退会済みユーザー

退会済みユーザー

2020/03/31 00:07

拙い文章ですみません>< nanami12さまのおっしゃている通りです><
guest

回答1

0

ベストアンサー

rb

1class Game 2 def janken 3 puts "最初はグー、じゃんけん……" 4 puts "[0]:グー\n[1]:チョキ\n[2]:パー" 5 player_hand = gets.to_i 6 7 program_hand = rand(3) 8 jankens = ["グー", "チョキ", "パー"] 9 10 puts "あなたの手:#{jankens[player_hand]}, プログラムの手:#{jankens[program_hand]}" 11 12 13 if player_hand == program_hand 14 next_game = true 15 16 puts "あいこで" 17 18 # じゃんけんを繰り返す 19 while next_game do 20 next_game = janken 21 end 22 23 elsif (program_hand - player_hand == 1 || program_hand - player_hand == -2 ) 24 puts "あなたの勝ちです" 25 janken = false # 返り値を返す 26 else 27 puts "あなたの負けです" 28 janken = false # 返り値を返す 29 end 30 end 31end 32 33Game.new.janken 34 35とかくか 36class を使いたくないなら 37 38ここから下が2番目のソース 39 40puts "最初はグーじゃんけん・・・・" 41 42def janken 43 puts "[0]グー\n[1]チョキ\n[2]パー" 44 45 player_hand = gets.to_i 46 program_hand = rand(3) 47 48 jankens = ["グー", "チョキ","パー"] 49 puts "あなたの手:#{jankens[player_hand]}, 相手の手:#{jankens[program_hand]}" 50 51 if player_hand == program_hand 52 puts "あいこで" 53 return true 54 elsif(player_hand == 0 && program_hand == 1)||(player_hand == 1 && program_hand == 2)||(player_hand == 2 && program_hand == 0) 55 puts "あなたの勝ちです" 56 return false 57 58 else 59 puts "あなたの負けです" 60 return false 61 end 62end 63 64 65 66next_game = true 67 68while next_game 69 next_game = janken 70end 71 72

いずれもネットにサンプルが記載されてました

投稿2020/03/31 00:47

nanami12

総合スコア1015

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/03/31 00:55

ありがとうございました!!!! できました!!
nanami12

2020/03/31 00:58 編集

最初の選択の配列も0を入力されたら グー ほかも同じ様に  ちょき パーの表示も 日本語で出力されます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問