Ruby講座|第6回 じゃんけんゲーム「5回勝ったらゲームクリアと表示させるには」
皆さん、こんにちは。
しょうとく(@syoucha0107)と申します。
Rubyプログラミング講座
本日のお題は「じゃんけんゲーム」です。
本日のお題をクリアできると第2回目の課題の答えが導けるようになるはずです。
まずはプレイヤーとコンピューターの対戦で勝ち負けを判定するものを作って行くのですが、表題にある通り、「5回勝ったらゲームクリアと表示させる」という条件を加えてゲーム終了となるものを作ります。
トータルで5回と数を積み上げ、5回に到達するとゲームクリアと表示させる。さあ、あなたならどう記述しますか。
あいこの場合にじゃんけんを再開させるには
ジャンケンと言えば、勝ち負けあいこを判定するゲームですよね。プレイヤーが入力した手の数値と、ランダムで選ばれたコンピューターの手の数値を基準にして、勝ち負けあいこの判定をします。
puts "じゃんけんゲーム" def guchokipa puts "[0]:グー\n[1]:チョキ\n[2]:パー" player_hand = gets.to_i program_hand = rand(3) jankens = ["グー", "チョキ", "パー"] puts "あなたの手:#{jankens[player_hand]}, コンピューターの手:#{jankens[program_hand]}" if player_hand == program_hand puts "あいこで" return true elsif (player_hand == 0 && program_hand == 1)|| (player_hand == 1 && program_hand == 2)|| (player_hand == 2 && program_hand == 0) puts "あなたの勝ちです" return false else puts "あなたの負けです" return false end end next_game = true # じゃんけんを繰り返す while next_game do next_game = guchokipa end
実行結果をみてみましょう。
あいこで再度ゲームをさせて、勝ちでゲームが終了していることがわかります。
トータル5回でゲームクリアと表示させるには
では本題です。
要は、勝ったときに勝ちの回数を積み上げるにはどうすればよいかですね。一例ではありますが、こうなります。
puts "じゃんけんゲーム" puts "トータルで5回勝つとゲームクリアだよ!" def guchokipa puts "[0]:グー\n[1]:チョキ\n[2]:パー" player_hand = gets.to_i program_hand = rand(3) jankens = ["グー", "チョキ", "パー"] puts "あなたの手:#{jankens[player_hand]}, コンピューターの手:#{jankens[program_hand]}" if player_hand == program_hand puts "あいこで" elsif (player_hand == 0 && program_hand == 1)|| (player_hand == 1 && program_hand == 2)|| (player_hand == 2 && program_hand == 0) puts "あなたの勝ちです" return true else puts "あなたの負けです" end end wins = 0 while wins < 5 do if guchokipa wins += 1 end end puts "おめでとうございます。ゲームクリア!!"
返り値を利用して、それをwhile文で判定させてみました。5回に達すれば最後のputsが表示され、ゲーム終了となるものです。
いかがでしたでしょうか。
これからもまた更新していきますので、どうぞまたこのブログに来てやってください。以上です。