1
0

More than 1 year has passed since last update.

Pythonでじゃんけんゲームを作ってみた

Last updated at Posted at 2022-12-14

最近Webスクレイピングの興味からPythonの勉強を始めました。
使っている教材でじゃんけんゲームを作ってみようという課題があり、若干詰まりながらもなんとか作成することができたので、この場でアウトプットをしていきます。

全体のコード

まずは全体のコードから。

import random

#リストにじゃんけんの手を格納
list=["グー","チョキ","パー"]

#プレイヤーの手をインプット
player = input("あなた:")

#リストから手を出す
com = random.choice(list)
print("相手:{}".format(com))

#プレイヤーと相手の手で勝敗を決める
#勝敗もプリント
if player == com:
    print("あいこです。")
elif player == "グー":
    if com == "チョキ":
        print("あなたの勝ち")
    elif com == "パー":
        print("あなたの負け")
elif player == "チョキ":
    if com == "グー":
        print("あなたの負け")
    elif com == "パー":
        print("あなたの勝ち")
elif player == "パー":
    if com == "グー":
        print("あなたの勝ち")
    elif com== "チョキ":
        print("あなたの負け")

コードの流れ

流れとしては以下のような感じです。

リストに「グー、チョキ、パー」を格納

自分の手をインプット

リストから相手の手をランダムに出力

If文で勝敗を決めて出力。

というような感じ。
コードは結構シンプルで単純。

解説

というわけで行ごとに解説していきます。

今回はrandom モジュールを使います。
random モジュールはリスト内や数値、文字などをランダムに出力してくれる優れものです。

randomをインポートしてリストにじゃんけんの手を格納します。

import random

#リストにじゃんけんの手を格納
list=["グー","チョキ","パー"]

#プレイヤーの手をインプット
player = input("あなた:")

#Listから手を出す
com = random.choice(list)
print("相手:{}".format(com))

そしてinputでプレイヤーの手をインプットします。
Inputした文字はPlayerに変数として格納されます。

その後randomでListの中の手を出力します。
いわばrandomはじゃんけんでいう相手ですね。
ちなみに相手の手はcomとして変数に格納されます。

次は勝敗をIf文で定義します。

#プレイヤーと相手の手で勝敗を決める
#勝敗もプリント
if player == com:
    print("あいこです。")
elif player == "グー":
    if com == "チョキ":
        print("あなたの勝ち")
    elif com == "パー":
        print("あなたの負け")
elif player == "チョキ":
    if com == "グー":
        print("あなたの負け")
    elif com == "パー":
        print("あなたの勝ち")
elif player == "パー":
    if com == "グー":
        print("あなたの勝ち")
    elif com== "チョキ":
        print("あなたの負け")

”あいこ”の場合は、Player=com
ようはListの中身の文字とInputで入力した文字と一緒の場合は”あいこ”になります。
似たような要領で勝敗を決めていきます。
先程のInputで入力された文字(変数のPlayer)と相手が出した文字(変数のcom)をIf文で定義します。

これで完成になります。

詰まったポイント

私はIf文で詰まりました。

初めは相手の出す手と自分の出す手を変数にしてIf文で勝敗を決めるように設定しようと試みましたが全然動かず。。。

x = "グー"
y = "チョキ"
z = "パー"
list=["x","y","z"]
player = input("あなた:")
a = "グー"
b = "チョキ"
c = "パー"
com = random.choice(list)
print("相手:{}".format(com))

if x == a:
    print("あいこです。")
elif x == b
        print("ちょきの勝ち")
#以下省略

↑のようにListの中身の手を変数に指定、自分の手を変数に指定して変数同士で勝敗を決めるIF文で作ろうとしたのですが、うまく動かず。
わざわざ変数に指定する必要なくね?と頭によぎり変数指定を取りやめることで完成しました。

変数同士を条件にIF文って作れないのだろうか。。。
暇なときにでもまた考えてみます。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0