在下面的石头剪刀程序中,我的循环出了问题。使用输入设置长度,每组玩游戏N次。 对于结果为播放器2,计算机0的情况;玩家0,电脑2;播放器2,电脑5;玩家0,电脑4;额外的游戏被添加到集合中。我已多次更改功能,无法弄清楚出了什么问题。
def rpsls_play():
print("Welcome to the Rock-Scissors-Paper-Lizard-Spock game!")
player_sets=0
N=int(input("Select set length: "))
times=0
player_wins=0
computer_wins=0
while times < N:
times +=1
print("Now beginning game", times)
if rpsls_game()==1:
player_wins +=1
else:
computer_wins +=1
print("Set score: Player", str(player_wins)+", Computer", str(computer_wins))
else:
pass
if player_wins==computer_wins:
while abs(player_wins-computer_wins)<2:
times +=1
print("Now beginning game", times)
if rpsls_game()==1:
player_wins +=1
else:
computer_wins +=1
print("Set score: Player", str(player_wins)+", Computer", str(computer_wins))
else:
pass
if player_wins>computer_wins:
print("Congratulations! You have won in", times, "games.")
player_sets +=1
elif computer_wins>player_wins:
print("Too bad! You have lost in", times, "games.")
pass
感谢您的帮助
答案 0 :(得分:1)
我无法检查您的代码,因为没有函数rpsls_game()
。
你没有说你的游戏有什么问题 - 你得到了什么,你期待什么?
我只能猜测你有线
的问题if player_wins==computer_wins:
只有player_wins == computer_wins
才会在N场比赛后添加额外游戏。
你不需要那条线。
答案 1 :(得分:1)
在我得到答案之前,将代码设计成一些有助于改进代码的东西:
您可以删除这些else: pass
行。
您可以删除最终的pass
语句。
您需要将其更改为:
if player_wins == computer_wins:
times +=1
print("Now beginning tie-breaker game. game", times)
if rpsls_game()==1:
player_wins +=1
else:
computer_wins +=1
print("Set score: Player", str(player_wins)+", Computer", str(computer_wins))