今回やること
ここまで学んだ基本文法を使って、じゃんけんゲームを作ります。
ミニ制作では、文法を1つずつ覚えるだけでなく、組み合わせて動くものにします。
今回は、入力、ランダム選択、勝敗判定を使います。
先にinputと表示、比較と論理演算、randomの基本まで動かせると、各処理の役割を追いやすくなります。
手を用意する
hands = ["グー", "チョキ", "パー"]
print(hands)
選べる手はリストで管理します。
コンピューターの手を選ぶ
import random
hands = ["グー", "チョキ", "パー"]
computer = random.choice(hands)
print(computer)
random.choice() でリストから1つ選びます。
ユーザー入力を受け取る
user = input("グー・チョキ・パーから選んでください: ")
入力された文字列を勝敗判定に使います。
勝敗を判定する
import random
hands = ["グー", "チョキ", "パー"]
user = input("グー・チョキ・パーから選んでください: ")
computer = random.choice(hands)
print(f"あなた: {user}")
print(f"コンピューター: {computer}")
if user == computer:
print("あいこです")
elif user == "グー" and computer == "チョキ":
print("勝ちです")
elif user == "チョキ" and computer == "パー":
print("勝ちです")
elif user == "パー" and computer == "グー":
print("勝ちです")
else:
print("負けです")
まずは読みやすさを優先して、条件をそのまま書きます。
勝ち条件は「グー対チョキ」「チョキ対パー」「パー対グー」の3組です。同じ手ならあいこ、それ以外を負けにします。3組を一つずつ声に出して確認すると、条件の書き忘れを見つけやすくなります。
入力チェックを追加する
if user not in hands:
print("グー・チョキ・パーのどれかを入力してください")
想定外の入力も考えると、プログラムが親切になります。
入力チェックは勝敗判定より前に置きます。正しい入力で勝ち・負け・あいこがそれぞれ一度以上表示され、不正な入力で案内が出れば最初の成功です。
よくあるエラー
| 問題 | 原因 | 修正 |
|---|---|---|
| いつも負ける | 条件式が間違っている | 勝ち条件を1つずつ確認 |
| 入力が合わない | 表記ゆれがある | 選択肢を表示する |
NameError | import random がない | 先頭にimportを書く |
練習
- じゃんけんを1回できるようにする
- 入力チェックを追加する
whileを使って何回も遊べるようにする- 勝ち数をカウントする
何回も遊べる形へ進むときは、while文の基本を使い、「終了」と入力したときにloopを抜ける条件を先に決めます。
次のステップ
次は、ファイル保存やCSVを使って「学習記録アプリ」のようなミニ制作に広げられます。