Python 石头、剪纸、蟒蛇等问题中的分数函数
我是编程新手&试图为我的类创建一个5个RPS的最佳游戏,但遇到了一些问题…当我调用我创建的alternativley的评分函数时,它工作了,但它使我的while循环继续运行,当我不调用评分函数时while循环在3停止Python 石头、剪纸、蟒蛇等问题中的分数函数,python,function,while-loop,Python,Function,While Loop,我是编程新手&试图为我的类创建一个5个RPS的最佳游戏,但遇到了一些问题…当我调用我创建的alternativley的评分函数时,它工作了,但它使我的while循环继续运行,当我不调用评分函数时while循环在3停止 def gamerps(): import random YS= 0 CS= 0 rules = {("R", "S"), ("P", "R"), ("S", "P")} msgs = {"R": "
def gamerps():
import random
YS= 0
CS= 0
rules = {("R", "S"), ("P", "R"), ("S", "P")}
msgs = {"R": "rock beats scissors", "P": "paper covers rock", "S":" scissors cut paper"}
while YS or CS <= 3:
YM = input("R/P/S?")
CM = random.choice(["R", "P", "S"])
if (YM, CM) in rules:
print ("You won! %s" % (msgs[YM]))
YS= YS+1
print (scorerps(YS, CS))
elif (CM, YM) in rules:
print ("You lost! %s" % (msgs[CM]))
CS= CS+1
print (scorerps(YS, CS))
elif YM == CM:
print ("Tie! Go again!")
else:
print ("ERROR, please choose R, P, or S for [R]ock [P]aper [S]cissors")
gamerps()
检查
循环时的状态:
while YS或CS我认为问题可能是您的while循环:
while YS or CS <= 3:
当YS或CS时,为什么在其内部调用scorerps
?另外,您在gamerps
中的while
状态与您想象的不同。它应该是,而YS oh ya应该是“and”&当你说在内部调用scorerps时,你是指在我调用score(1,2)的第二个代码中,还是在我调用打印分数时在RPS函数中?我正在调用score函数(1,2)来测试它,但是我试图为赋值做的是调用score函数来显示RPS函数中的score,它必须是一个单独的函数,所以我不能只在RPS函数中添加score def中的代码,因为我们必须实际创建separatley,然后在RPS函数中调用它。。。如果这有意义的话,我可能误解了你的提问……我的意思是在函数scorerps
中,函数的最后一行是scorerps(1,2)
所以基本上你有无限递归调用,我明白了!,我想这里的格式有点乱,但一开始不是这样的,哈哈,谢谢,我没注意到!这个修好了,谢谢!然而,当它打印我的结果时,一切都是正确的,除了它在每个分数后打印这个“无”,不知道为什么…R/P/S?P你赢了!纸盖岩石你领先2-1!无R/P/S?S领带!再来一次!R/P/S?R你输了!纸封面摇滚乐的比分是2比2!没有,你赢了!石头胜过剪刀你3-2赢了!没有人知道“无”是关于什么的?实际上nvm我知道“无”我想我只是调用了score函数,而不是打印它
while YS or CS <= 3:
(YS != 0) or (CS <= 3)