【Python】初心者でも簡単じゃんけんゲームのプログラミング!コピペで気軽にチャレンジ!

※本ページはアフィリエイト広告が含まれています

Python-jankengamePython
スポンサーリンク

人工知能に興味があるからPythonでプログラミングを始めたいけど自分には難しそう。。

最初は誰しもそう思うものです。しかし簡単なプログラムからPythonを知ることできて楽しさを感じられます。

楽しいことから深く学んで行けば学習も無理なく進んで行けるのではないでしょうか。

将来は人工知能のプログラマーにもなれるかもしれません。ワクワク感をもってプログラミングに取り組んでみてください。

この記事では初心者に向けたPythonを使ったじゃんけんゲームをご紹介します。

この記事を見て出来ること
  • 基本的なPython構文
  • 関数の定義
  • ランダムな選択
  • 条件分岐

以上のことを学ぶことができます。

コピペをして動きを確認しても良いですが、コードを見ながら自分でエディタに書いて実際に動かしてみてください。きっと「おーっ!」と嬉しく思うことでしょう。

プログラミングの楽しさをぜひ体感してください。

■本のご紹介

Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ

この本は筆者が初めてPythonを勉強するのに使用しました。

Pythonの基礎から簡単なアプリ、そして人工知能まで作れてしまう楽しい一冊です。キャラクターの楽しい会話形式が親しみがあり学習もはかどりました。

Pythonが初めての方にはおすすめです。

スポンサーリンク

Pythonで初心者でもじゃんけんゲームをつくろう!

テキストベースのじゃんけんゲームになりますので、比較的書きやすいプログラムです。数字を入力してコンピューターと対戦するようになっています。

見本のエディタはVS Code(Visual Studio Code)を使用しています。

Visual Studio Code公式ホームページ https://code.visualstudio.com/

VS Codeでの実行方法

Visual Studio Code(VS Code)をインストールする

Python拡張機能をインストールする

  • VS Codeを開き、左のサイドバーにある拡張機能(Extensions)アイコンをクリックします。
  • 検索バーに「Python」と入力し、Pythonに関連した拡張機能をインストールします。

新しいファイルを作成する

  • VS Codeを開き、「ファイル」メニューから「新しいファイル」を選択します。
  • 上記のコードをエディタに記述します。(コピー&ペーストでも構いません)

ファイルを保存する

「ファイル」メニューから「名前を付けて保存」を選択し「(任意のファイル名).py」という名前で保存します。(※ファイル名の後ろには「.py」を忘れないようにしてください)

Pythonファイルを実行する

VS Codeのショートカットキーで実行します。

  • F5
  • Windows: Ctrl+Shift+D
  • Mac: ⇧⌘D

ターミナルに結果が表示されます。

スポンサーリンク

Pythonじゃんけんゲーム全体プログラム 

まずは全体のプログラムコードをご紹介しますので、コピペでどのようになるか見てもらっても構いません。

解説を見ながら楽しんで取り組んでみてくださいね。

import random

def get_player_choice():
    #プレイヤーの選択を取得する関数
    while True:
        choice = input("グー(0)、チョキ(1)、パー(2)のいずれかを選んでください: ")
        if choice in ['0', '1', '2']:
            return int(choice)
        print("無効な入力です。0、1、2のいずれかを入力してください。")

def get_computer_choice():
    #コンピュータの選択をランダムに生成する関数
    return random.randint(0, 2)

def determine_winner(player, computer):
    #勝者を判定する関数
    if player == computer:
        return "引き分け"
    elif (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
        return "プレイヤーの勝ち"
    else:
        return "コンピュータの勝ち"

def play_game():
    #じゃんけんゲームを実行する関数
    choices = ["グー", "チョキ", "パー"]
    
    while True:
        player_choice = get_player_choice()
        computer_choice = get_computer_choice()
        
        print(f"プレイヤー: {choices[player_choice]}")
        print(f"コンピュータ: {choices[computer_choice]}")
        
        result = determine_winner(player_choice, computer_choice)
        print(result)
        
        play_again = input("もう一度プレイしますか? (y/n): ")
        if play_again.lower() != 'y':
            break
    
    print("ゲームを終了します。")

#ゲームを開始
play_game()
スポンサーリンク

プログラムの手順

  1. 必要なモジュールのインポート
  2. プレイヤーの選択を取得する関数
  3. コンピュータの選択を生成する関数
  4. 勝者を判定する関数
  5. ゲームを実行する関数
  6. ゲームの開始

1.必要なモジュールのインポート

import random

まず、randomモジュールをインポートしています。このモジュールは、後でコンピュータの選択をランダムに生成するために使用します。

2.プレイヤーの選択を取得する関数

def get_player_choice():
    """プレイヤーの選択を取得する関数"""
    while True:
        choice = input("グー(0)、チョキ(1)、パー(2)のいずれかを選んでください: ")
        if choice in ['0', '1', '2']:
            return int(choice)
        print("無効な入力です。0、1、2のいずれかを入力してください。")

関数の定義

def get_player_choice():
    """プレイヤーの選択を取得する関数"""

def get_player_choice(): で関数を定義しています。この関数は引数を取りません。

無限ループの開始

while True:

while True: で無限ループを開始します。 これにより、プレイヤーが有効な選択をするまで、入力を求め続けることができます。

ユーザー入力の受け取り

choice = input("グー(0)、チョキ(1)、パー(2)のいずれかを選んでください: ")

input() 関数を使って、ユーザーからの入力を受け取ります。 入力されたテキストは choice 変数に格納されます。 カッコ内のテキストは、ユーザーに表示される文字になります。

入力の検証

if choice in ['0', '1', '2']:

この行は、ユーザーの入力が有効かどうかをチェックします。 in 演算子は、choice が指定されたリスト ['0', '1', '2'] の中にあるかどうかを確認します。 つまり、入力が ‘0’、’1’、または ‘2’ のいずれかであれば、この条件はTrueになります。

有効な入力の処理

return int(choice)

入力が有効な場合(’0’、’1’、または ‘2’)、この行が実行されます。 int(choice) は、文字列の choice を整数に変換します。 return 文は、この整数値を関数の呼び出し元に返し、関数の実行を終了します。

無効な入力の処理

print("無効な入力です。0、1、2のいずれかを入力してください。")

入力が ‘0’、’1’、’2′ 以外の場合、この行が実行されます。 エラーメッセージをプリントし、ループの先頭に戻って再度入力を求めます。

3.コンピュータの選択を生成する関数

def get_computer_choice():
    """コンピュータの選択をランダムに生成する関数"""
    return random.randint(0, 2)

この関数はrandom.randint(0, 2)を使用して、0から2までのランダムな整数を生成します。これにより、コンピュータの選択(グー、チョキ、パー)がランダムに決定されます。

4.勝者を判定する関数

def determine_winner(player, computer):
    """勝者を判定する関数"""
    if player == computer:
        return "引き分け"
    elif (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
        return "プレイヤーの勝ち"
    else:
        return "コンピュータの勝ち"

関数の定義

def determine_winner(player, computer):
    """勝者を判定する関数"""

def determine_winner(player, computer): で関数を定義しています。 この関数は2つの引数playercomputerを受け取ります。これらはそれぞれプレイヤーとコンピュータの選択を表します。

引き分けの判定

if player == computer:
    return "引き分け"

if player == computer: は、プレイヤーとコンピュータの選択が同じかどうかをチェックします。 もし同じなら(例:両者とも「グー」を選んだ場合)、"引き分け"という文字列を返します。 return文は関数の実行を終了し、指定された値を関数の呼び出し元に返します。

プレイヤーの勝利条件

elif (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
    return "プレイヤーの勝ち"

このelif文は、プレイヤーが勝つ3つの条件をチェックします:

  1. player == 0 and computer == 1: プレイヤーが「グー」(0)で、コンピュータが「チョキ」(1)の場合
  2. player == 1 and computer == 2: プレイヤーが「チョキ」(1)で、コンピュータが「パー」(2)の場合
  3. player == 2 and computer == 0: プレイヤーが「パー」(2)で、コンピュータが「グー」(0)の場合

これらの条件のいずれかがTrueの場合、"プレイヤーの勝ち"という文字列を返します。 or演算子は、これらの条件のうちどれか1つでも真であれば、全体をTrueとします。

コンピュータの勝利条件

else:
    return "コンピュータの勝ち"

elseは、上記の条件(引き分けとプレイヤーの勝ち)がすべてFalseの場合に実行され、コンピュータが勝った場合を表します。 この場合、"コンピュータの勝ち"という文字列を返します。

5.ゲームを実行する関数

def play_game():
    """じゃんけんゲームを実行する関数"""
    choices = ["グー", "チョキ", "パー"]
    
    while True:
        player_choice = get_player_choice()
        computer_choice = get_computer_choice()
        
        print(f"プレイヤー: {choices[player_choice]}")
        print(f"コンピュータ: {choices[computer_choice]}")
        
        result = determine_winner(player_choice, computer_choice)
        print(result)
        
        play_again = input("もう一度プレイしますか? (y/n): ")
        if play_again.lower() != 'y':
            break
    
    print("ゲームを終了します。")

関数の定義と選択肢の設定

def play_game():
    """じゃんけんゲームを実行する関数"""
    choices = ["グー", "チョキ", "パー"]

def play_game():で関数を定義しています。 choices リストには、じゃんけんの3つの選択肢を格納しています。

ゲームのメインループ

while True:
    # ゲームのメイン処理

while True:で無限ループを作成しています。これにより、プレイヤーが終了を選択するまでゲームを続けることができます。

プレイヤーとコンピュータの選択

player_choice = get_player_choice()
computer_choice = get_computer_choice()

get_player_choice() 関数を呼び出してプレイヤーの選択を取得します。get_computer_choice() 関数を呼び出してコンピュータの選択をランダムに生成します。

選択結果の表示

print(f"プレイヤー: {choices[player_choice]}")
print(f"コンピュータ: {choices[computer_choice]}")

f-string(フォーマット済み文字列リテラル)を使用して、プレイヤーとコンピュータの選択を表示します。 choices リストから対応する選択肢(グー、チョキ、パー)を取得して表示します。

勝者の判定と結果表示

result = determine_winner(player_choice, computer_choice)
print(result)

determine_winner() 関数を呼び出して勝者を判定します。 判定結果を print()で表示します。

ゲーム継続の確認

play_again = input("もう一度プレイしますか? (y/n): ")
if play_again.lower() != 'y':
    break

input() 関数でプレイヤーに再プレイの意思を確認します。 play_again.lower()で入力を小文字に変換し、’y’でない場合はループを break で抜けます。

ゲーム終了メッセージ

print("ゲームを終了します。")

ループを抜けた後、ゲーム終了メッセージを表示します。

6.ゲームの開始

# ゲームを開始
play_game()

最後に、play_game()関数を呼び出してゲームを開始します。

■本のご紹介

プログラミング入門講座――基本と思考法と重要事項がきちんと学べる授業

この本はプログラミングにおける必要性の価値を教えてくれる一冊です。

オンラインサービスで学習ができるサイトも多く紹介されており、子供に親しみやすいScratchもあります。やってみるとコードではなくパズルのように組み立てていくので視覚的にも分かりやすいです。

しかし子供向けだからと言っても本格的なプログラムを学ぶことができます。プログラムコードに少し苦手意識がある方はこちらの本からチャレンジしてみてください。楽しいですよ。

じゃんけんゲームを作ってみてスクールでもっと深く学びたくなった方は「【2024年最新版】プログラミングスクールPython講座10選を徹底比較」でPython講座を提供する優秀スクールの比較と選び方をご紹介しております。ぜひチェックしてください。

スポンサーリンク

Pythonで初心者でもじゃんけんゲームをつくろう! まとめ

楽しくプログラムできましたでしょうか。

このじゃんけんゲームのプログラムは、関数を使って処理を整理し、再利用可能なコードを作成しています。また、ユーザー入力のバリデーション、ランダムな選択の生成、ゲームロジックの実装など、プログラミングの基本的な概念を多く含んでいます。

ここからもっとプログラミングに興味が持てたら深く学習を始めていくのもよいですね。

こちらにプログラミングを無料で学べるサイトをご紹介しています。まずは試しに独学でという方におすすめです。ぜひ参考になさってください。

※本ページはプロモーションが含まれています。

Python
スポンサーリンク
meguをフォローする
WEBらぼ