練習にじゃんけんプログラムを書いてみた
Pythonでは、あるリストからランダムにその要素を取り出す関数があって、それは
random.choice(List)
のように使う。たとえば
>>> lst = [1,3,5]
>>> random.choice(lst)
3
>>> random.choice(lst)
1
これを知ったとき、ふと「コンピュータとじゃんけんができそう」と思い、実際そのプログラムを書いてみた。
def janken(): import random s = ("r","p","s") n,win,lose,draw = 0,0,0,0 print "5回勝負のじゃんけんをしましょう。\n\n\ *グーならr(Rock)\n *パーならp(Paper)\n\ *チョキならs(Scissors)\n\nを入力してください。" while n < 5: n = n + 1 comp_choice = random.choice(s) if comp_choice == "r": comp = "グー" elif comp_choice == "p": comp = "パー" else: comp = "チョキ" print print "------------%s回目-------------" %n human_choice = raw_input("\nr・p・sの中から選択...") if comp_choice == human_choice: print "コンピュータは%sを選択しました。\n" %comp print "引き分けです。" draw = draw + 1 elif comp_choice == "r" and human_choice == "p": print "コンピュータは%sを選択しました。\n" %comp print "あなたの勝ちです。" win = win + 1 elif comp_choice == "p" and human_choice == "s": print "コンピュータは%sを選択しました。\n" %comp print "あなたの勝ちです。" win = win + 1 elif comp_choice == "s" and human_choice == "r": print "コンピュータは%sを選択しました。\n" %comp print "あなたの勝ちです。" win = win + 1 else: print "コンピュータは%sを選択しました。\n" %comp print "コンピュータの勝ちです。" lose = lose + 1 print "\n結果:" print "勝った回数:", win print "負けた回数:", lose print "引き分け数:", draw
※ブログが細くてちょっと見づらくなってる(´・ω・`)
実行結果:
5回勝負のじゃんけんをしましょう。 *グーならr(Rock) *パーならp(Paper) *チョキならs(Scissors) を入力してください。 ------------1回目------------- r・p・sの中から選択...r コンピュータはグーを選択しました。 引き分けです。 ------------2回目------------- r・p・sの中から選択...r コンピュータはチョキを選択しました。 あなたの勝ちです。 ------------3回目------------- (略) 結果: 勝った回数: 1 負けた回数: 2 引き分け数: 2
ただのじゃんけんじゃちょっとしょぼいな・・・。今度はオセロとかそういうゲームを作ってみよう思う。