【Python】じゃんけんゲーム作成(1)1回勝負のじゃんけんゲームを作る
かなり前に少しかじったpythonですが、もう少し学習を進めてみようと思い、簡単なものをいくつか作ってみることにしました。
ということで、まずは参考にした本にも載っていた「じゃんけん」プログラムを自分で考えて作成してみることにします。
1回勝負のじゃんけんゲーム
目標
- プレイヤーの出し手(0,1,2)を入力待ちし、入力された数値に対する手(グー、チョキ、パー)を表示する
- じゃんけんのコンピュータの手を決定し、プレイヤーの出し手とを比較して勝負を決める
- 勝敗の結果を表示する
上記の目標と仕様を立てて作成してみました。
コード1(janken.py)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import random hands = ['グー', 'チョキ', 'パー'] judge = ['あいこ', '負け', '勝ち'] #ゲーム開始 print("=== ジャンケンしようぜ! ===") print("ルール:入力できる値は 0:グー、1:チョキ、2:パーです") print("じゃんけん・・・") #player player = int(input('>>>')) if player == 0 or player == 1 or player == 2: print('あなた:' + hands[player]) #computer computer = random.randint(0,2) print('コンピュータ:' + hands[computer]) #勝敗(0:あいこ / 1:プレイヤの負け / 2:プレイヤの勝ち) decision = (player - computer + 3) % 3 #結果の表示 print('======================') print("結果は「" + judge[decision] + "」です") print('======================') else: #入力エラー print('0~2を数値入力してください') |
コード1 解説
コンピュータの手をランダムで決定するために、冒頭でrandomライブラリをimportします。
1 |
import random |
リスト(配列)に出す手と勝敗を設定します。
1 2 |
hands = ['グー', 'チョキ', 'パー'] judge = ['あいこ', '負け', '勝ち'] |
昔のチャットよろしく「>>>」で対話型のキー入力待ちを表示させます。
入力待ちは input() するだけ。数値として扱うので、int() で囲みます。
1 |
player = int(input('>>>')) |
教科書でもポイントとなっていましたが、勝敗の判定がオシャレですね。
1 |
decision = (player - computer + 3) % 3 |
返り値のdecisionには、
あいこ:0
負け:1
勝ち:2
が代入される仕組みとなっています。
なんでこれで勝敗が判定できるのかを詳しく知りたい方は以下のサイトを参照してください。
https://staku.designbits.jp/check-janken/
最後に勝敗を表示させます。
1 |
print("結果は「" + judge[decision] + "」です") |
実行
上記ソースコードを、janken.pyとして保存し実行します。
コマンドは以下の通りです。
1 |
python janken.py |
数値「1」を入力した結果
規定の数値を入力した場合は、コンピュータとの勝負をし、「勝ち」「あいこ」「負け」どれかの結果が表示されます。
また、数値(0, 1, 2以外)を入力した場合は、エラーメッセージが表示され終了しますが、文字列(例:zzz)を入力した場合は、例外エラーとなります。
数値「666」を入力した場合(任意のメッセージ)
文字列「zzz」を入力した場合(例外エラー)
ひとまず、第1回はここまで。