gpt4 book ai didi

Python新手练习: Rock Paper Scissors

转载 作者:太空宇宙 更新时间:2023-11-04 09:04:44 26 4
gpt4 key购买 nike

我一直在尝试编写一个简单的 RPS 游戏,用户可以在其中与计算机对战。此时只有 1 次迭代(因为我卡住了......)并且没有验证用户输入是否有效。我遇到的问题是,无论我尝试做什么以将计算机和用户的分数存储在一个变量中,它们始终等于 0,无论我尝试了何种缩进或我尝试将返回放在何处. (正如您在下面的代码中看到的那样……我尝试过但没有成功的一些部分被注释掉了)。理想情况下,由于我计划多次迭代,我希望更新变量 u 和 v 本身并保持得分,而不仅仅是打印谁赢得了特定迭代。

你能帮我理解我做错了什么吗?

干杯

from random import randrange
rps = ["r", "p", "s"]



def gameplay(user,comp):
u = 0 #user's score
v = 0 #computer's score
print "Computer chose: " + comp
if comp == user:
pass
elif comp == "r" and user == "p":
u += 1
#print u
#return u

elif comp == "r" and user == "s":
v += 1
#print v
#return v

elif comp == "p" and user == "s":
u += 1
#print u
#return u

elif comp == "p" and user == "r":
v += 1
#print v
#return v

elif comp == "s" and user == "r":
u += 1
#print u
#return u

elif comp == "s" and user == "p":
v += 1
#print v
#return v

return u
return v

gameplay(raw_input("your move?"),rps[randrange(3)])
print u
print v

最佳答案

只是为了好玩......看看你是否能理解这个OOP实现(开始学习OOP永远不会太早)

WIN,TIE,LOSE = 1,0,-1
class RockPaperScissors:
def __str__(self):
return self.__class__.__name__
class Rock(RockPaperScissors):
def __cmp__(self,other):
if isinstance(other,Rock): return TIE
if isinstance(other,Paper): return LOSE
return WIN

class Paper(RockPaperScissors):
def __cmp__(self,other):
if isinstance(other,Paper): return TIE
if isinstance(other,Scissors):return LOSE
return WIN

class Scissors(RockPaperScissors):
def __cmp__(self,other):
if isinstance(other,Scissors): return TIE
if isinstance(other,Rock):return LOSE
return WIN

def RPS(ltr_code):
return {'r':Rock,'p':Paper,'s':Scissors}[ltr_code.lower()]()


player = RPS("r")
computer = RPS("s")
if player > computer:
print "Player Wins! %s beats %s"%(player,computer)
elif player < computer:
print "Computer wins!! %s beats %s"%(computer,player)
else:
print "Tied!! %s ties %s"%(computer,player)

关于Python新手练习: Rock Paper Scissors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21944030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com