所以我正在尝试制作一个石头、剪刀、布游戏,并且我正在尝试制作这样的游戏:如果用户(或计算机)获得 3 分,或者用户(或计算机)的分数大 2(例如3 局中最好的 2 局)则用户(或计算机)获胜。但我似乎无法让它发挥作用。我刚刚开始学习 Python 和一般编程,所以我希望得到尽可能简单的解释。
这是我尝试过的代码:
def rpc_game_normal ():
rpc = ['r', 'p', 's']
computer_wins = 0
wins = 0
while True:
print(f"Me: {computer_wins} | You: {wins} ")
user = input('Your move human: ').lower()
computer = random.choice(rpc)
if user == computer:
wins += 0
computer_wins += 0
elif pattern(user, computer):
computer_wins += 1
else:
wins += 1
score(wins, computer_wins)
print(f"I chose {computer} and you chose {user}.")
def pattern(user, computer):
if (user == 'r' and computer == 's') or (user == 'p' and computer == 'r') or \
(user == 's' and computer == 'p'):
return True
def score(user, computer):
if computer + 2 > user:
return True
elif user + 2 > computer:
return True
elif user == 3:
print("You win!")
return True
else:
print("I win!")
return True
我:0 |你:0 你的举动人类:r 我选择了s,你选择了r。 我:1 |你:0 你的举动人类:s 我选择了 s,你选择了 s。
这就是我得到的结果。即使满足标准,我也会一遍又一遍地重复同样的循环。
您可以简单地使用
player = 3
computer = 1
if computer - player = 2:
print("computer wins")
elif player - computer = 2:
print("player wins")
只要计算出差异是否为 2 就可以解决这个问题。