Python 创建战争游戏(卡片)——打印卡片时遇到问题
这是我目前掌握的代码。它运行,但当我希望它打印为“心的9”(又名卡片描述符)时,输出结果是“(name)绘制了1中的9)。有没有关于我做错了什么的线索??如何让getRank将字符串描述返回到self.rank?另外,我没有包括战争游戏的其他代码,因为它完全有效,只是我返回军衔和西装的方式。但是,如果添加它对我有帮助,我会的Python 创建战争游戏(卡片)——打印卡片时遇到问题,python,class,object,methods,Python,Class,Object,Methods,这是我目前掌握的代码。它运行,但当我希望它打印为“心的9”(又名卡片描述符)时,输出结果是“(name)绘制了1中的9)。有没有关于我做错了什么的线索??如何让getRank将字符串描述返回到self.rank?另外,我没有包括战争游戏的其他代码,因为它完全有效,只是我返回军衔和西装的方式。但是,如果添加它对我有帮助,我会的 class PlayingCard: # constructor def __init__(self, rankNum, suitNum):
class PlayingCard:
# constructor
def __init__(self, rankNum, suitNum):
self.rank = rankNum
self.suit = suitNum
def __str__(self):
return "{} of {}".format(self.rank, self.suit)
def getRank(self):
if self.rank == 11:
return "Jacks"
elif self.rank == 12:
return "Queen"
elif self.rank == 13:
return "King"
elif self.rank == 14:
return "Ace"
else:
return self.rank
def getSuit(self):
if self.suit == 1:
return "Clubs"
elif self.suit == 2:
return "Hearts"
elif self.suit == 3:
return "Diamonds"
elif self.suit == 4:
return "Spades"
def equals(self, otherCard):
if self.rank == otherCard.rank and self.suit == otherCard.suit:
return True
else:
return False
def trumps(self, otherCard):
if self.rank > otherCard.rank:
return True
else:
return False
这是返回自我等级和自我套装
因此,它将返回2个中的11个,而不是Jack of Hearts
要返回《红心杰克》,您需要将代码更改为:
def __str__(self):
return "{} of {}".format(self.rank, self.suit)
如果要打印suitTry的名称,需要使用self.getSuit()
,返回{}.format(self.getRank(),self.getSuit())
,以便函数调用的返回值成为“format”调用的参数。您只需执行返回条件
。
def __str__(self):
return "{} of {}".format(self.getRank(), self.getSuit())