###1.プログラムの仕様
2人(自分とコンピュータ)で行うじゃんけんプログラム
###2.まずはアルゴリズムを考える
ざっとこんなところか
1.自分の手を出す(今回はコマンドライン引数で選択)
2.相手の手を出す(Randメソッドを使用)
3.勝敗の判定する
4.結果を表示する
ポイントは「3.勝敗の判定をする」である。
単純にプログラムを書くと以下のようになる。
Janken.rb
def judge(my,your)
if my == "グー"
if your == "グー"
puts "あいこです"
elsif your == "チョキ"
puts "あなたの勝ちです"
elsif your == "パー"
puts "あなたの負けです"
end
(以下略)
end
end
しかしこれではかなり冗長なプログラムとなるので、少し工夫する。
###3.勝ち、負け、あいこの法則性を探る
何かじゃんけんの結果に法則性があれば、それを利用することで可読性の高いプログラムとなるはずである。
実は「グーを0」、「チョキを1」、「パーを2」と置き、自分の手から相手の手を引き算すると勝ちの場合は「-1 or 2」、負けの場合は「1 or -2」、あいこの場合は「0」となる。
0(グー) | 1(チョキ) | 2(パー) | |
---|---|---|---|
0(グー) | 0 | -1 | -2 |
1(チョキ) | 1 | 0 | -1 |
2(パー) | 2 | 1 | 0 |
上記のことを踏まえてプログラムにしてみると以下のようになる
Janken.rb
def judge(human,computer)
puts "あなたの手は" + @hand[human] + "です。"
puts "コンピュータの手は" + @hand[computer] + "です。"
var = human - computer
if var == -1 || var == 2
puts "あなたの勝ちです"
elsif var == 1 || var == -2
puts "あなたの負けです"
elsif var == 0
puts "あいこです"
end
end
プログラムの全文は以下リンク先から