Python | 1 日 60 分 × 7 日アプリ学習:Python文法を学ぶアプリ じゃんけんゲーム編

Web APP Python
スポンサーリンク
スポンサーリンク

1日目のゴールと全体像

1日目のテーマは 「Pythonの超基本(変数・入力・条件分岐)だけで、1回勝負のじゃんけんゲームを動かしてみること」 です。

この日はまだ「繰り返し」「ファイル操作」は軽く触れる程度にして、 まずは “1回だけじゃんけんして結果を表示する” ところまでを目標にします。

  • プレイヤーが「グー / チョキ / パー」を入力する
  • コンピュータがランダムに手を選ぶ
  • 勝ち・負け・あいこを判定して表示する

この流れの中で、自然に

  • 変数
  • 条件分岐(if / elif / else)
  • 標準入力(input)
  • ランダム(random)

を体験していきます。

じゃんけんゲームの全体イメージ

1回勝負のじゃんけんゲームの流れは、こうなります。

  1. プレイヤーに「グー / チョキ / パー」を入力してもらう
  2. コンピュータの手をランダムに決める
  3. 勝ち負けを判定する
  4. 結果を表示する

この4ステップを、Pythonのコードに落とし込んでいきます。

変数:値に名前をつける

変数って何?

変数は、 「値に名前をつけて、あとで使えるようにする仕組み」 です。

じゃんけんゲームでは、例えばこんな変数を使います。

  • player_hand:プレイヤーの手
  • computer_hand:コンピュータの手
  • result:勝ち負けの結果

例:変数の基本

player_hand = "グー"      # プレイヤーの手
computer_hand = "チョキ"  # コンピュータの手
result = "勝ち"           # 結果
Python

ここではまだ固定値ですが、 後で input()random を使って動的に変えていきます。

プレイヤーの入力を受け取る(input)

コンソールから入力する

Pythonでは、input() を使うと ユーザーから文字列を入力してもらう ことができます。

player_hand = input("あなたの手を入力してください(グー/チョキ/パー):")
print("あなたの手は:", player_hand)
Python
  • input("...") の中の文字列が、画面に表示されるメッセージ
  • ユーザーが入力した内容が、player_hand に文字列として入ります

コンピュータの手をランダムに決める

randomモジュールを使う

Pythonには、ランダムな値を作るための random モジュールがあります。

import random  # ランダムを使うためのモジュール

hands = ["グー", "チョキ", "パー"]          # 手の候補をリストで用意
computer_hand = random.choice(hands)       # リストからランダムに1つ選ぶ

print("コンピュータの手は:", computer_hand)
Python

ポイント:

  • import random でランダム機能を使えるようにする
  • ["グー", "チョキ", "パー"] は「リスト」と呼ばれる、複数の値の入れ物
  • random.choice(hands) で、リストからランダムに1つ選べる

条件分岐で勝ち負けを判定する

if / elif / else の基本

じゃんけんの勝敗は、 「プレイヤーの手」と「コンピュータの手」の組み合わせで決まる」 ので、条件分岐がぴったりです。

if player_hand == computer_hand:
    result = "あいこ"
elif player_hand == "グー" and computer_hand == "チョキ":
    result = "勝ち"
elif player_hand == "チョキ" and computer_hand == "パー":
    result = "勝ち"
elif player_hand == "パー" and computer_hand == "グー":
    result = "勝ち"
else:
    result = "負け"
Python

深掘りポイント:

  • if:最初の条件
  • elif:それ以外の条件(複数書ける)
  • else:どれにも当てはまらない場合
  • and:両方の条件が真のときに真になる

ここでは「勝ちパターン」を3つ書き、 それ以外は負けとみなしています。

1日目の完成コード:1回勝負のじゃんけんゲーム

ここまでの要素を全部つなげると、 「1回だけじゃんけんして結果を表示する」 シンプルなゲームが完成します。

import random  # ランダムな手を選ぶためのモジュール

def main():
    # プレイヤーの手を入力してもらう
    player_hand = input("あなたの手を入力してください(グー/チョキ/パー):")

    # コンピュータの手をランダムに決める
    hands = ["グー", "チョキ", "パー"]          # 手の候補をリストで用意
    computer_hand = random.choice(hands)       # ランダムに1つ選ぶ

    # 入力内容とコンピュータの手を表示
    print("あなたの手は:", player_hand)
    print("コンピュータの手は:", computer_hand)

    # 勝敗判定
    if player_hand == computer_hand:
        result = "あいこ"
    elif player_hand == "グー" and computer_hand == "チョキ":
        result = "勝ち"
    elif player_hand == "チョキ" and computer_hand == "パー":
        result = "勝ち"
    elif player_hand == "パー" and computer_hand == "グー":
        result = "勝ち"
    else:
        result = "負け"

    # 結果を表示
    print("結果:", result)

# Pythonの「入口」
if __name__ == "__main__":
    main()
Python

このコードで学べること

  • 変数player_hand, computer_hand, result
  • 条件分岐if / elif / else
  • 関数main() という「処理のかたまり」に名前をつけている
  • 繰り返し:まだ使っていないが、2日目以降で「何回も遊べるように」する
  • ファイル操作:1日目では触れないが、後半で「勝敗ログを保存する」などに発展できる

1日目で本当に掴んでほしいこと

1. 「動くもの」を作る感覚

たとえシンプルでも、 自分の入力に応じてコンピュータが反応する という体験は、プログラミング学習の大きなモチベーションになります。

2. 変数と条件分岐は、ほぼすべてのプログラムの土台

  • 何かを「覚えておく」のが変数
  • 状況に応じて「分岐する」のが条件分岐

この2つがわかると、 じゃんけん以外のロジックも自然に書けるようになります。

3. 関数で「処理に名前をつける」

main() のように関数を作ることで、 コードの「まとまり」が見えやすくなります。 後で「勝敗判定だけを関数に切り出す」などの発展もできます。

次のステップ

2日目では、この1回勝負のじゃんけんゲームを

  • 何回も遊べるようにする(繰り返し)
  • 勝ち数・負け数・あいこ数をカウントする(変数+繰り返し)

といった形で育てていきます。

「1回だけ」から「何度でも遊べるゲーム」へ進化させることで、 繰り返し(for / while) の感覚が自然に身につきます。

タイトルとURLをコピーしました