我正在尝试实现一个函数,该函数采用整数 n 并在玩家 1 和玩家 2 之间模拟 n 轮石头、纸、剪刀。赢得最多回合的玩家将赢得 n 轮游戏,可能有平局。该函数应打印游戏结果,如图所示。
>>> simul(1)
Player 1
>>> simul(1)
Tie
>>>simul(100)
Player 2
我认为我需要以模块化的方式来解决这个问题。换句话说,我需要结合至少 2 个功能,我的问题是我似乎无法弄清楚如何做到这一点。调用函数时如何激活嵌入函数的结果simul()
?
所以我创建了一个函数,通过执行函数来模拟游戏 Rock, Paper, Scissors rps(p1, p2)
。代码如下:
def rps(p1,p2):
#tie
if (p1==p2):
return 0
# player 1 wins
elif p1+p2 in ['PR','RS','SP']:
return -1
else:
return 1
# player 2 wins
这是我有点卡住的地方。我需要在执行该功能时激活该simul()
功能——我该怎么做?到目前为止,我有以下内容:
def rps(p1,p2):
#tie
if (p1==p2):
return 0
# player 1 wins
elif p1+p2 in ['PR','RS','SP']:
return -1
else:
return 1
# player 2 wins
def choose_rps():
import random
random.choice('RPS')
def simul(n):
p1_wins, p2_wins = 0, 0
for i in range(n):
p1 = choose_rps()
p2 = choose_rps()
result = rps(p1, p2)
if result == -1:
p1_wins += 1
elif result == 1:
p2_wins += 1
if p1_wins > p2_wins:
return 'Player 1'
elif p1_wins == p2_wins:
return 'Tie'
else:
return 'Player 2'