前提・実現したいこと
2日前からRubyを勉強しはじめ、今練習のためじゃんけんプログラムをつくっています。
作っている最中に出てきた疑問と実現できない部分があるので、ご教授いただけると幸いです。
実現したいこと
・あいこであれば、じゃんけんを繰り返す
・勝つか負けるかすると「もう一度ゲームをするか、やめるか」という分岐を出す
実現できない点
・勝つ/負けるの際、プログラムが終了してしまう(continue_orが作動しない)
疑問
・何故「puts "最初はグー、じゃんけん..." 」は、あいこの場合表示されず、最初だけ表示されるのか
Ruby
1def janken_play # じゃんけんのメソッド 2 puts "[0]:グー\n[1]:チョキ\n[2]:パー" 3 player = gets.to_i # ぐーちょきぱー選ばせる 4 program = rand(3) # 乱数処理 5 6 # じゃんけんの手(0−2)と対応した文字列が入ったオブジェクトを作成 7 janken = ["グー","チョキ","パー"] 8 9 # お互いの結果表示 10 puts "あなたの手は#{janken[player]}、わたしの手は#{janken[program]}" 11 12 if player == program # あいこ場合 13 puts "あいこで" 14 return true 15 elsif (program - player) % 3 == 1 16 puts "あなたのかちです" 17 return false 18 else # まけたの場合 19 puts "あなたのまけです" 20 return false 21 end 22 23def continue_or 24 puts "もう一度じゃんけんをする場合は[0]、ゲームをやめる場合は[1]" 25 player_conti = gets. to_i 26 27 if player_conti == 0 28 return true 29 elsif player_conti == 1 30 exit 31 else 32 return true 33 end 34 35end 36 37 38next_game = true # 1回目を実行するためにtrueを代入 39quit_game = false 40 41puts "最初はグー、じゃんけん..." # じゃんけん最初の表示 42 43# じゃんけんをくりかえす 44while next_game do 45 if next_game = janken_play 46 else quit_game = continue_or 47 end 48end 49
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/07 15:14