💎

Rubyでじゃんけんコードを書いてみた。練習にぜひ

2022/10/14に公開約4,200字

どうも、プログラミングを初めて今日で約3週間になるYumaです。
今回はRubyを使ってじゃんけんプログラムを書いていきます。

じゃんけんは初心者練習と言われていますが、プログラミング初心者にとっては難しいです。
記事内では所々解説も挟みますので、ぜひご参考にしてください!

Rubyでじゃんけんコード、完成形を見てみよう

では実際の完成コードを見てみましょう。

def janken
puts "最初はグー、じゃんけん..."
puts "[0]:グー\n[1]:チョキ\n[2]:パー"

player_hand = gets.to_i

program_hand = rand(3)

if player_hand > 2
	puts "入力された値が無効です"
	return true
end
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

こちらが完成形のコードです。これをコンソール上で出力すると...

と表示されます。

では、実際にRubyのコードを書いていきましょう。

実際にRubyでじゃんけんコードを書こう

def janken
puts "最初はグー、じゃんけん..."
puts "[0]:グー\n[1]:チョキ\n[2]:パー"

player_hand = gets.to_i

program_hand = rand(3)
end

まずは大枠から書いていきましょう。じゃんけんのコードを書くので分かりやすくjanken メソッドを作成します。

メソッドを指定した後はputsを使用し「じゃんけんをするから0or1or2のどれかを選んで!」という内容を伝えます。(文字の横にある\nは改行コードです。)

次に出てくるのがplayer_hand = gets.to_iというコード、こちらを書くことでユーザー数字を入力し、受け取ることができます。一度書いてみましょう。

その次に出てくるのがprogram_hand = rand(3)です。rand(数字)と書くことでランダムに( )内に数字を入れます。この場合の三つは(0と1と2です。)

ここでよく出る疑問がこちら

はい、その通り。数字だけではどうしてもグーやチョキを表示できませんよね。なのでこのコードを書き足します。

def janken
puts "最初はグー、じゃんけん..."
puts "[0]:グー\n[1]:チョキ\n[2]:パー"

player_hand = gets.to_i

program_hand = rand(3)

# ↓書き足したコード
jankens=["グー","チョキ","パー"]
puts "あなたの手:#{jankens[player_hand]}, プログラムの手:#{jankens[program_hand]}"

end

jankensにグー.チョキ.パーの三つを代入します。
次にユーザーが選んだ手とプログラムによってランダムに選んだ手を文字列として表しましょう。

jankens[player_hand]

と書かれていますね、これはplayer_handの数字をjankensの数字と繋げる役割を果たします。

例えば....
0を選んだ場合、jankensの0の位置にあるグーがユーザーの手として表示されます。
これで基本文が完成です。

分岐要素を付けよう(Rubyでじゃんけん)

かなり完成系に近づきました。次はif文を使って実際にじゃんけんプログラムを行いましょう。
まずはじめに、じゃんけんの勝ち負けは以下に分けれます。

ややこしいですね...。これをif文で定義します。

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

よし!これで完成!
....でも大丈夫ですが、もう少しリッチなじゃんけんプログラムにしてみましょう。

繰り返し要素をつけよう(Rubyでじゃんけん)

あいこの場合はもう一度じゃんけんを行いたいですよね、そこで切り返し要素を使いましょう!
繰り返し要素はreturnを使うことで定義できます。完成系のコードがこちら

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

こちらのRubyコードを分かりやすく言うと「もしtrueが起こった時にはもう一度jankenメソッドを繰り返す」というもの。

jankenメソッドとは記事内冒頭で説明したものです。
こちらを使うことでより親切なプログラムになります。

基本的なじゃんけんコードの書き方は以上です!お疲れ様でした!!

少しスキルアップ!!

こちらはスキルアップしたい方向けです。
0or1or2のどれかを入力すればじゃんけんが表示できるようになりましたね、しかし、もしユーザーが2以上を入力した場合はどうでしょう、エラーが起きてしまいます。

なのでコードにこのように指定しましょう。

if player_hand > 2
	puts "入力された値が無効です"
	return true

もし2以上の数を入力した際に値が無効であることを表示するコードです。
どこに入れるかはぜひ考えてみましょう。ちなみに答えは冒頭のコードに書いてあります。

Rubyでじゃんけんコード作成まとめ

この記事ではRubyを使用してじゃんけんコードを書く方法をご紹介しました。
最初はとても難しいですが、慣れれば簡単にできるようになります。

ぜひ何度も練習し、より難しいコードも難なく書けるよう勉強していきましょう!
お読みいただきありがとうございました!

では!

Discussion

ログインするとコメントできます