おひとりさまプログラミング

無料で学べるブログラミング学習サイト

Ruby講座|第6回 じゃんけんゲーム「5回勝ったらゲームクリアと表示させるには」

皆さん、こんにちは。

しょうとく(@syoucha0107)と申します。

Rubyプログラミング講座
本日のお題は「じゃんけんゲーム」です。

本日のお題をクリアできると第2回目の課題の答えが導けるようになるはずです。

まずはプレイヤーとコンピューターの対戦で勝ち負けを判定するものを作って行くのですが、表題にある通り、「5回勝ったらゲームクリアと表示させる」という条件を加えてゲーム終了となるものを作ります。

f:id:sayo0425tan:20200821193240p:plain

トータルで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

実行結果をみてみましょう。

f:id:sayo0425tan:20200821193823j:plain

あいこで再度ゲームをさせて、勝ちでゲームが終了していることがわかります。

トータル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が表示され、ゲーム終了となるものです。

youtu.be

いかがでしたでしょうか。
これからもまた更新していきますので、どうぞまたこのブログに来てやってください。以上です。