この記事を読むことで、
・乱数を使った簡単なじゃんけんゲームが作れる
・標準入力
・論理演算子 OR
・IF文を使った勝敗分岐の復習
についての概要が掴めます。
ルールとして、
1:グー 2:チョキ 3:パー で、変数youに半角数字で標準入力を使って入力をします。
コンピューターは、1〜3までの乱数を求めて変数pcに代入します。
乱数の算出と表示をするコードはこちらになります。
#乱数を使う為、ランダムモジュールをインポートする
import random
#乱数pcの範囲を1から3までとする
pc=random.randint(1, 3)
print(pc)
これで乱数が求まりました。
次に、あなたの手を標準入力します。
#標準入力で、あなたの出す手を決める
print("じゃんけんの手を半角数字で「1:グー 2:チョキ 3:パー」 >>>",end="")
you=int(input())
これで、半角で数値が入力出来るようになり、1から3までがそれぞれジャンケンの手に対応しています。
勝敗の判定をIF文で行っています。
#勝敗の判定
if you == pc:
msg="あいこです。"
elif you == pc -1 or you == pc +2:
msg="YOU WIN!!!!!!"
else:
msg="YOU LOSE...."
print(msg)
まず、一番簡単なのが「あいこ」の時なので、最初に書きます。
次にあなたがコンピューターに勝つ場合は、
・グー(1) VS チョキ(2)…. youはpcより1小さい
・チョキ(2) VS パー(3)…. youはpcより1小さい
・パー(3) VS グー(1) …. youはpcより2大きい
の場合です。
つまり、youがpcよりも1小さいか、2大きい時にあなたの勝ちとなります。
または、に当たりますので、IF文の中でORを使っています。
ここまでのコードをまとめてみます。
#乱数を使う為、ランダムモジュールをインポートする
import random
#乱数pcの範囲を1から3までとする
pc=random.randint(1, 3)
print(pc)
#標準入力で、あなたの出す手を決める
print("じゃんけんの手を半角数字で「1:グー 2:チョキ 3:パー」 >>>",end="")
you=int(input())
#勝敗の判定
if you == pc:
msg="あいこです。"
elif you == pc -1 or you == pc +2:
msg="YOU WIN!!!!!!"
else:
msg="YOU LOSE...."
print(msg)
ここからは、このジャンケンの部分を関数にしていきます。
コンピュータが出す手の乱数とその手の表示、勝敗分岐まで関数に記述しました。
関数Comuter_Handの仮引数youは、標準入力であなたが入力した1〜3までの半角英数字が入ります。
#コンピューターの出す手の関数
def Computer_Hand(you):
#乱数pcの範囲を1から3までとする
pc=random.randint(1, 3)
print(pc)
#コンピューターの出した手
if pc==1:
print("PC:グー")
elif pc==2:
print("PC:チョキ")
else:
print("PC:パー")
#勝敗の判定
if you == pc:
msg="あいこです。"
elif you == pc -1 or you == pc +2:
msg="YOU WIN!!!!!!"
else:
msg="YOU LOSE...."
return msg
この関数を呼び出すのは、あなたが標準入力でジャンケンの手を入れてからです。
戻り値として勝敗結果のmsgを呼び出し元に返します。
#標準入力で、あなたの出す手を決める
print("じゃんけんの手を半角数字で「1:グー 2:チョキ 3:パー」 >>>",end="")
you=int(input())
judge=Computer_Hand(you)
関数Computer _Handの引数をyouとして呼び出しています。
戻り値として帰ってきた勝敗結果がjudgeに代入されます。
ジャンケンコードの全体と実行結果です。
#乱数を使う為、ランダムモジュールをインポートする
import random
#コンピューターの出す手の関数
def Computer_Hand(you):
#乱数pcの範囲を1から3までとする
pc=random.randint(1, 3)
print(pc)
#コンピューターの出した手
if pc==1:
print("PC:グー")
elif pc==2:
print("PC:チョキ")
else:
print("PC:パー")
#勝敗の判定
if you == pc:
msg="あいこです。"
elif you == pc -1 or you == pc +2:
msg="YOU WIN!!!!!!"
else:
msg="YOU LOSE...."
return msg
#標準入力で、あなたの出す手を決める
print(" じゃんけんの手を半角数字で「1:グー 2:チョキ 3:パー」 >>>",end="")
you=int(input())
judge=Computer_Hand(you)
print(judge)
いきなり負けました(笑)

今度こそは!!

やった、勝った♪
最後はあいこで。

お疲れ様でした。ブレイクタイムPhotoは、

東京モノレールです。
羽田空港第二ターミナルまで行きます。
ご精読ありがとうございました。
■ 独習Python ■
Kindle版
単行本(ソフトカバー)