#はじめに
プログラミングを勉強したての頃、FIzzBuzz問題やじゃんけん問題を作成することがあると思います。
今回はそのじゃんけん問題をRubyで作っていこうと思います。
##最初はグー
まずじゃんけんを始めるには最初はグーで始めますね。
puts "じゃんけん・・・・"
puts "[0]グー\n[1]チョキ\n[2]パー"
この後自分の手を0、1、2で入力し、グー、チョキ、パーを判定します。
また自分の手をplayer_hand、相手の手をprogram_handととし、相手の手はランダムで決定されるようにします。
player_hand = gets.to_i
program_hand = rand(3)
この時、グー、チョキ、パーを0、1、2で判別するためにグー、チョキ、パーを配列に置く必要があります。
jankens = ["グー", "チョキ","パー"]
ここまでの処理は
puts "あなたの手:#{jankens[player_hand]}, 相手の手:#{jankens[program_hand]}"
で表示できます。
ここまでの処理
puts "じゃんけん・・・・"
puts "[0]グー\n[1]チョキ\n[2]パー"
player_hand = gets.to_i
program_hand = rand(3)
jankens = ["グー", "チョキ","パー"]
puts "あなたの手:#{jankens[player_hand]}, 相手の手:#{jankens[program_hand]}"
##勝ち負け判定
・あいこの場合はplayer_handとprogram_handが==の時、
・勝ちの場合は
①player_handがグーの時、program_handがチョキ
②layer_handがチョキの時、program_handがパー
③player_handがパーの時、program_handがグー
の3通りです。
・最後に負けの場合ですが、上記の処理以外は全て負けとなりますので、上記に当てはまらない場合は負けとなります。
これをまとめると
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
となります。
##あいこの時は
勝ちか負けであればゲームは終了となりますが、もしあいこだった場合、ゲームは続行します。
よって上記までの処理をループします。
puts "最初はグーじゃんけん・・・・"
def janken
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
next_game = janken
end
以上でじゃんけん問題の制作を終わります。