【发布时间】:2013-02-15 09:31:17
【问题描述】:
我对我的 comp sci 课程进行了测试,其中一个问题是制作一个剪刀石头布游戏,如果玩家 1 赢了它会返回 -1,如果玩家 2 赢了它会返回 1,如果是平局它会返回 0。我编写了我的程序并运行它,它可以工作,但根据我的教授的说法,他说它没有。
def rps(x,y):
player1 = -1
player2 = 1
tie = 0
'R'>'S'
'P'>'R'
'S'>'P'
if x>y:
return player1
if x<y:
return player2
else:
return tie
我看不出有什么问题?如果您执行 rps('R','P') 那么它将返回 -1,因为 x = player1 并且因为 Rock 击败了 Paper。谁能帮我看看我的代码有没有错?
【问题讨论】:
-
行 'R'>'S', 'P'>'R', 'S'>'P' 没有任何作用。
-
您是否已经学会了字典是什么?
-
你说“它有效”,但显然它没有用。程序在没有语法错误的情况下运行是不够的。使用测试用例并检查结果。
-
如果你运行
rps('R','S'),你会得到1,因为摇滚胜过纸。同样,rps('R','P')给出-1,因为纸比石头好。但是如果你运行rps('S','P'),你应该得到1,因为剪刀比纸好,但你没有——你得到-1,这是错误的。 -
@ChrisTaylor 您应该回答这个问题,因为您实际上回答了所提出的问题,这与发布的答案不同,这些答案提供的代码(值得称赞)OP 实际上并没有要求。
标签: python