【Python】じゃんけんゲーム:基本構文だけで楽しく学ぶ入門編

Python

この記事で学習できること
  • Pythonの基本的な構文(print, input, if文など)を使って、簡単なゲームを作ること
  • 初心者でも理解しやすいコードを書くこと
  • 実行してすぐに楽しめるシンプルなじゃんけんゲームを完成させること
日本では現在、ITエンジニアの人材不足が深刻化しており、
それに伴いエンジニアの需要が急速に高まっています。
プログラミングスキルを身につけることで、以下のような多くのメリットが得られます。
転職市場での競争力が向上し、収入アップのチャンスが広がる
副業として活用でき、収入源を増やせる
✅ プログラマーに限らず、IT時代を生き抜く武器になる

もし少しでも興味があるなら、まずはプログラミングスクールの無料体験を試してみるのがおすすめです。
スクール名特徴主な学習内容対象者
AI・データサイエンス特Python/AIに特化した実践カリキュラム。現役エンジニアの手厚いサポートと「学び放題」制度が特徴。専門実践教育訓練給付金適用可能。Python, 機械学習, データ分析AI・データ分析初心者~中級者
完全マンツーマン指導。オーダーメイドカリキュラムとトリプルサポート体制(講師+コーチ+Q&A掲示板)。挫折率2.1%の継続性。Web開発, AI, アプリ開発
キャリアチェンジ志望者
AI/機械学習専門。E資格合格率83.1%。カリキュラムが無期限に閲覧可能。卒業生コミュニティが強み。AI特化の転職サポートあり。Python, 機械学習, データ分析AIエンジニア志望者
転職保証付きの短期集中型スクール。未経験者向けのサポートが充実。Web開発, プログラミング全般未経験からのエンジニア転職志望者

要件定義|Pythonでじゃんけんゲームを作る前にやるべきこと

プログラムを作り始める前に、**「どんなゲームにするのか」をしっかり決めておくことが大切です。これを要件定義(ようけんていぎ)**といいます。難しそうに聞こえるかもしれませんが、やることはとてもシンプルです。

ここでは、じゃんけんゲームがどんな動きをするのか、どんな機能が必要かを整理してみましょう。

ゲームに必要な機能(要件一覧)

  1. プレイヤーが「グー・チョキ・パー」の中から1つを選べるようにする
  2. コンピュータがランダムに手を選ぶ
  3. プレイヤーとコンピュータの手を比べて勝敗を判定する
  4. 勝ち・負け・あいこ(引き分け)を表示する
  5. ゲーム終了後に、もう一度遊ぶかどうかを選べる

ゲームの流れ(画面に表示される順番)

  1. 「じゃんけん…ポン!」と表示される
  2. プレイヤーが「グー」「チョキ」「パー」から選択(例:数字や文字で入力)
  3. コンピュータの手を表示
  4. 勝敗の結果を表示(例:「あなたの勝ち!」)
  5. 「もう一度遊びますか?」と聞く
  6. 「はい」で繰り返し、「いいえ」で終了

今回のポイント

  • 初心者でも作成しやすくするため、難しいコードやライブラリは使いません
    (できるだけ標準のPython機能だけ)
  • if文や乱数、ループ処理など、基本を自然に学べる構成にします
  • 見た目よりも、「どうやって動いているか」を理解できることが目的です

基本設計|Pythonでじゃんけんゲームの「仕組」を考えよう

要件定義で「どんなじゃんけんゲームを作るのか」が決まりました。次は、それをどんな流れで動かすか、そしてどんなしくみで動かすかを考えるステップです。これを**基本設計(きほんせっけい)**といいます。

この章では、ゲームの全体の流れ画面表示のイメージ入力と出力の設計を初心者でもわかりやすく解説します。

ゲームの全体の流れ

以下のような流れでゲームが進みます。

画面表示(出力)のイメージ

出力とは、Pythonがユーザーに見せるメッセージのことです。

▼ ゲーム開始時:

じゃんけんゲームへようこそ!
0: グー 1: チョキ 2: パー
あなたの手を数字で入力してください:

▼ 結果表示:

あなた:グー
コンピュータ:チョキ
あなたの勝ちです!

▼ 再プレイ確認:

もう一度遊びますか?(y/n):

入力と処理の設計

▼ 入力する情報(ユーザーが入力するもの):

  • 「じゃんけんの手」:数字で入力(例:0=グー、1=チョキ、2=パー)
  • 「もう一度遊ぶかどうか」:y または n

▼ Pythonで使う基本構文:

  • input():ユーザーから入力を受け取る
  • print():画面にメッセージを表示する
  • if / elif / else:勝敗の判定
  • while:ゲームを繰り返す処理
  • random.randint():コンピュータの手をランダムに決める

※難しい文法は使いません。すべてPythonの基礎だけで実装できます!

詳細設計|Pythonでじゃんけんゲームのコードを書く前の準備

前の章では、じゃんけんゲームの全体の流れや構造(基本設計)を考えました。ここでは、実際のコードを書くために必要な「パーツごとの設計」を詳しく行っていきます。

このステップを「詳細設計」といいます。やることはとてもシンプルで、どのパーツで、どんな処理を行うかをひとつずつ整理するだけです。

ゲームを構成する5つのパーツ

じゃんけんゲームは、以下のような5つのパーツに分けて設計するとわかりやすくなります。

1. 定数の定義(手の名前を管理)

Pythonでは、0・1・2 の数字を「グー・チョキ・パー」として扱います。
これをリスト(一覧)で管理しておくと、あとから表示がしやすくなります。

hands = ["グー", "チョキ", "パー"]
  • 0 → グー
  • 1 → チョキ
  • 2 → パー

2. プレイヤーの入力処理

ユーザーがじゃんけんの手を選ぶ処理です。

player_input = input("0: グー 1: チョキ 2: パー\nあなたの手を数字で入力してください:")

ここで気をつけるポイント:

  • 入力は文字列なので、あとで int() に変換する必要があります
  • ユーザーが間違った数字を入れた場合のエラーチェックもあると親切です(今回はシンプルに進めます)

3. コンピュータの手を決める処理

Pythonの標準ライブラリである random を使って、コンピュータの手をランダムに選びます。

import random
computer_hand = random.randint(0, 2)
  • random.randint(0, 2) は、0〜2のどれかをランダムに返します
  • これを使えば、じゃんけんの手を自動的に決めることができます

4. 勝敗を判定する処理

Pythonの if 文を使って、勝ち・負け・あいこを判定します。ルールは以下のとおり:

  • グー(0)はチョキ(1)に勝つ
  • チョキ(1)はパー(2)に勝つ
  • パー(2)はグー(0)に勝つ
if player_hand == computer_hand:
    result = "あいこです"
elif (player_hand == 0 and computer_hand == 1) or \
     (player_hand == 1 and computer_hand == 2) or \
     (player_hand == 2 and computer_hand == 0):
    result = "あなたの勝ちです!"
else:
    result = "あなたの負けです..."

このようにして、3パターンの結果を表示できるようにします。


5. ゲームのループ処理(再プレイ機能)

1回だけじゃなく、何度でも遊べるようにするにはループ処理を使います。while 文が便利です。

while True:
    # 入力 → 勝敗判定 → 結果表示 の処理をここに入れる

    retry = input("もう一度遊びますか?(y/n):")
    if retry != "y":
        print("ゲームを終了します。ありがとうございました!")
        break

実装時に使うPythonの基本構文まとめ

  • input():ユーザーからの入力
  • print():結果を表示する
  • int():文字列を数字に変換
  • if / elif / else:条件分岐
  • while:繰り返し処理
  • import random / random.randint():ランダムな値を作る

実装|Pythonでじゃんけんゲームを実際に作ってみよう!

ここまで設計してきた「Pythonで作るじゃんけんゲーム」のプログラムを、いよいよ実際にコードとして書いて動かす段階に入ります。
このセクションでは、コードを1ブロックずつ丁寧に解説しながら、完成まで導いていきます。

事前準備:必要なモジュールをインポート

import random
  • randomモジュールは、コンピュータの手をランダムに選ぶために使用します。

ステップごとの実装コードと解説

① 手の一覧を定義(グー・チョキ・パー)

hands = ["グー", "チョキ", "パー"]
  • それぞれに「0」「1」「2」が対応しています。
  • 表示や勝敗判定で使います。

② ゲームを繰り返すループを作成

while True:
  • while True: を使うと、プレイヤーがやめるまでゲームを続けられます。

③ プレイヤーの手を入力

print("\nじゃんけんをしましょう!")
print("0: グー 1: チョキ 2: パー")
player_input = input("あなたの手を数字で入力してください:")
  • input() でキーボード入力を受け取ります。
  • 入力されたデータは**文字列(str型)**なので、次のステップで数値に変換します。

④ 入力を数値に変換 & エラーチェック

if player_input not in ["0", "1", "2"]:
    print("無効な入力です。0〜2の数字を入力してください。")
    continue

player_hand = int(player_input)
  • ユーザーが変な文字を入れたときは再入力を促します。
  • continue で最初に戻ります。

⑤ コンピュータの手をランダムに決定

computer_hand = random.randint(0, 2)
  • random.randint(0, 2) で 0~2 の整数をランダムに生成します。

⑥ 手と結果を表示

print(f"\nあなた:{hands[player_hand]}")
print(f"コンピュータ:{hands[computer_hand]}")
  • プレイヤーとコンピュータの手を表示します。
  • f文字列(フォーマット文字列)で簡潔に書けます。

⑦ 勝敗を判定

if player_hand == computer_hand:
    print("あいこです")
elif (player_hand == 0 and computer_hand == 1) or \
     (player_hand == 1 and computer_hand == 2) or \
     (player_hand == 2 and computer_hand == 0):
    print("あなたの勝ちです!")
else:
    print("あなたの負けです…")
  • 基本の if 文を使って、じゃんけんのルールに沿って勝敗を判定します。

⑧ もう一度遊ぶか確認

retry = input("\nもう一度遊びますか?(y/n):")
if retry.lower() != "y":
    print("ゲームを終了します。ありがとうございました!")
    break
  • retry.lower() は「Y」「y」どちらでもOKにするため。
  • 「n」以外ならゲームが継続します。

完成コードまとめ

以下が、すべての処理をまとめた完成版コードです:

import random

hands = [“グー”, “チョキ”, “パー”]

while True:
print(“\nじゃんけんをしましょう!”)
print(“0: グー 1: チョキ 2: パー”)
player_input = input(“あなたの手を数字で入力してください:”)

if player_input not in ["0", "1", "2"]:
    print("無効な入力です。0〜2の数字を入力してください。")
    continue

player_hand = int(player_input)
computer_hand = random.randint(0, 2)

print(f"\nあなた:{hands[player_hand]}")
print(f"コンピュータ:{hands[computer_hand]}")

if player_hand == computer_hand:
    print("あいこです")
elif (player_hand == 0 and computer_hand == 1) or \
     (player_hand == 1 and computer_hand == 2) or \
     (player_hand == 2 and computer_hand == 0):
    print("あなたの勝ちです!")
else:
    print("あなたの負けです…")

retry = input("\nもう一度遊びますか?(y/n):")
if retry.lower() != "y":
    print("ゲームを終了します。ありがとうございました!")
    break

✅ まとめ

  • Pythonの基本構文だけで、実用的なゲームを作ることができました。
  • input()print()ifwhilerandom など、初心者が覚えるべき構文が自然に身につきます。
  • このような小さなプログラムを積み重ねることが、プログラミング上達の近道です!

コメント

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