この記事ではMac環境でpythonを使ってじゃんけんゲームを作る方法について解説していきます。
Macでpythonの環境をセットする方法については以前の記事を参考にしてください!
また、コードの記述ではHomebrewを使用してVisual Studio Code (VS Code)をインストールしてpythonのコードを作成していきます。
Homebrew経由でVS Codeをインストール
まずはターミナルを起動して以下のコードを入力します。
brew install --cask visual-studio-code
インストールが完了するとLaunchpad上にVS Codeのアプリが表示されるのでクリックして起動します。

VS Codeはデフォルトでは英語表記のため画面左の虫眼鏡のアイコンをクリックしてJapanese Language Packをインストールします。

インストール後にVS Codeを再起動すると日本語表記に修正されます (めちゃくちゃ便利ですね)!
続いてpython、python debugger、python indent、autoDocstringもインストールします。
※最低限であればpythonとpython debuggerのみでも問題ありません。
Python Indentはpythonで重要なインデントをチェックしてくれるため記述ミスなどをヘルスことができておすすめです。




全てインストールできたらVS Codeを再起動します。ここまでで準備は完了です。
VS Codeのターミナルから仮想環境の設定
まずは今回コードや仮想環境を保存するフォルダを作成または開きます。
画面上部のファイル→フォルダーを開くで使用するフォルダを指定します。

以前の記事で仮想環境を作成されている方は前回の仮想環境を設定したフォルダを開いてVS Codeのターミナル (画面右下)で設定します。
source pygame/bin/activate
(pygame部分は設定したい仮想環境を指定してください) 設定できると下のように (pygame)と仮想環境名が表示されます。

伏せている部分は使用しているPC名とユーザー名がデフォルトでは表示されています。
まだ仮想環境を作成されていない方はVS Codeのターミナル上で以下を入力して仮想環境を作成します
python3 -m venv pygame
※pygame部分は好きな名称で大丈夫です!
仮想環境を構築できたら指定してアクティベートします。
source pygame/bin/activate
設定できると下のように (pygame)と仮想環境名が表示されます。

これで仮想環境の設定が完了しました!
pythonでじゃんけんゲームのコードを書こう
ここからじゃんけんゲームのコードを作っていきます。
まずは完成系のイメージを共有します。

まずユーザーにじゃんけんの手を入力してもらい、CPU側はランダムにじゃんけんの手を決めます。ユーザーとCPUの手を比較して勝ち/負け/引き分けを決定します。
このゲームではpythonのrandomモジュールを使い、じゃんけんの手が格納されているリストから手を選択します。
まずはrandomモジュールをインポートするためにコードの最初に
import random
と入力します。
次にCPUの手を決めるためのグー、チョキ、パーを格納したリストを作成します。
import random
#じゃんけんの手リストを作成
choices = ["グー", "チョキ", "パー"]
randomモジュールのchoice()関数を使用してCPUの手をランダムに決めてcomputer_choiceの変数に格納します。
import random
#じゃんけんの手リストを作成
choices = ["グー", "チョキ", "パー"]
#ランダムな手をcomputer_choiceに格納
computer_choice = random.choice(choices)
ここまででCPUの手をグー、チョキ、パーの中からランダムに選ぶコードが完成しました。
続いてユーザーにじゃんけんの手を入力してもらうためのコードを記述します。
import random
#じゃんけんの手リストを作成
choices = ["グー", "チョキ", "パー"]
#ランダムな手をcomputer_choiceに格納
computer_choice = random.choice(choices)
#ユーザーにじゃんけんの手を入力してもらう
user_choice = input("グー", "チョキ", "パーのどれかを入力してください:")
input()を使う事でユーザーに入力してもらうことができます。入力された値はuser_choiceに格納されます。
ここまでのコードでCPUとユーザーのじゃんけんの手がそれぞれcomputer_choice、user_choiceに格納されたのでじゃんけんの勝敗をif文でパターン分けしていきます。 ※パターン分けについてぜひ一度ご自身で考えてみてください!
パターンを考えられましたか?私は以下のようにパターン分けをしました。
下記の4パターンを想定しています。
- ユーザーの入力がじゃんけんの手ではない (入力ミス)
- CPUとユーザの手が同じ (引き分け)
- ユーザーの勝ち
- CPUの勝ち
まずはユーザーの入力ミスがあるかどうかをチェックしてその後に勝敗ごとにパターンを分けるif文を作成していきます。
if user_choice not in choices:
#入力ミスの場合
print("正しい選択肢を入力してください")
elif user_choice == computer_choice:
#引き分けの場合
print("引き分け!")
elif (user_choice == "グー" and computer_choice == "チョキ") or \ (user_choice == "チョキ" and computer_choice == "パー") or \ (user_choice == "パー" and computer_choice == "グー"):
#ユーザーが勝つ場合
print(f"あなたの勝ち!相手の手: {computer_choice}")
else:
#ユーザーが負けの場合
print(f"あなたの負け...相手の手: {computer_choice}")
入力ミスと引き分けの場合は定型分をprint()で表示し、勝敗がつく場合はどちらの勝ちか、相手の手は何だったのかをprint()で表示します。
ここまでのコードをまとめると以下のようになります。
import random
#じゃんけんの手リストを作成
choices = ["グー", "チョキ", "パー"]
#ランダムな手をcomputer_choiceに格納
computer_choice = random.choice(choices)
#ユーザーにじゃんけんの手を入力してもらう
user_choice = input("グー", "チョキ", "パーのどれかを入力してください:")
if user_choice not in choices:
#入力ミスの場合
print("正しい選択肢を入力してください")
elif user_choice == computer_choice:
#引き分けの場合
print("引き分け!")
elif (user_choice == "グー" and computer_choice == "チョキ") or \ (user_choice == "チョキ" and computer_choice == "パー") or \ (user_choice == "パー" and computer_choice == "グー"):
#ユーザーが勝つ場合
print(f"あなたの勝ち!相手の手: {computer_choice}")
else:
#ユーザーが負けの場合
print(f"あなたの負け...相手の手: {computer_choice}")
実際にこのコードを VS Code上で動かしてみましょう。
VS Code右上の▶︎をクリックして実行できます。
ターミナル上でコードが実行されます。

まずはじゃんけんの手ではない情報を入力してエラーが出るか確認します。
チョキでなくちぇきと入力すると以下のようにエラーの表示が出ますね。

次に正しい手を入力してみると勝敗が表示されます。

以上がpythonでじゃんけんゲームを作る実際の流れでした。
今回のコードではユーザーにグーチョキパーを打ち込んでもらうので入力ミスが発生しやすいですね。じゃんけんの手をリストではなく1:グー、2:チョキ、3:パーのような辞書型にして、ユーザーは1-3の数字を入力してもらう方がミスが減りそうです。
ターミナル上ではなく、ブラウザ上で動かせるとよりゲーム感が増すことができるのでpythonをwebブラウザ上で動かしたり、GUIを作ってアプリケーション風にする方法についても今後の記事で追加しますのでお待ちください!
コメントを残す