Python(ジャンケン)
from random import randint as rand
def OtherHand():
"""相手の手をランダムに出す関数
@retval 0 グー
@retval 1 チョキ
@retval 2 パー"""
otherHand = rand(0,2)
hand = {0:"グー",1:"チョキ",2:"パー"}
print(f"相手の手:{hand[otherHand]}")
return otherHand
def Janken(playerHand,otherHand):
"""ジャンケンの勝ち負け判断関数
@retval 1 勝ち
@retval 0 勝ち以外(負け、引き分け)"""
x = (playerHand-otherHand+3) % 3
if x==0:
print("引き分け")
return 0
elif x==1:
print("負け")
return 0
else:
print("勝ち")
return 1
def get_int(function):
"""<高階関数>入力を求める関数の値を判断する関数
@param function 入力処理を行う関数
@return tmpNum 正しい入力値の数"""
while True:
s = function()
if s.isnumeric():
tmpNum = int(s)
if tmpNum < 0 or tmpNum > 2:
print(f"「{s}」は無効な数字です\n正しい入力値をお願いします")
else:
return tmpNum
else:
print(f"「{s}」は無効な数字です\n正しい入力値をお願いします")
def InputPlayerHand():
"""プレイヤー入力値を判断する関数
@retval s 入力値の整数"""
def GetAnswer():
"""入力値を返す関数
@retval 入力値の文字列"""
print("0:グー、1:チョキ、2:パー")
playerHand = input("出したい手を0~2で入力してね:")
return playerHand
return get_int(GetAnswer)
def DoJanken(num):
"""ジャンケンを実行する関数
@param num 繰り返し関数"""
count = 0
for i in range(num):
print(f"\n{i+1}回目***じゃんけんスタート***")
hand = InputPlayerHand()
otherHand = OtherHand()
count += Janken(hand,otherHand)
print(f"\n勝った回数:{count} / {num}")
def input_num():
"""入力を求める関数"""
return input("ジャンケンの回数を入力してください:")
"""実行処理"""
DoJanken(get_int(input_num))
九九問題と同様のつくりでジャンケンをPythonプログラミング!