好的,在查看了很多关于课程的教程视频之后,我仍然无法理解他们的这项任务,我必须这样做。
我需要写一个基本上做高卡的程序,这意味着我需要面对2张牌,其中一张是西装和排名的赢家。
2-14是等级(11 =杰克,12 =女王,13 =王,14 =王牌)
1-4适合(俱乐部,钻石,心脏,黑桃)
这是我到目前为止所拥有的
class Card:
def __init__(self, inRank, inSuit):
self.__rank = inRank
self.__suit = inSuit
有人能指出我在正确的方向吗?我正在绘制如何开始这个的空白。
答案 0 :(得分:1)
快速侧面说明。 Python mangles class and instance variables,其名称以两个下划线开头。我建议使用一个下划线(或者根本不使用)。
回到原来的问题。我的下一步是创建一个接受另一个卡实例的方法faceoff
。此方法可以返回获胜卡,也可以返回一个布尔值,让您知道调用者是否赢了。
例如:
def faceoff(self, other):
# Compare self against other
# ...
# if self beats other
return True
return False
答案 1 :(得分:1)
你的课很好,虽然我会删除属性中的下划线,因为你没有实现任何比较对象的方法。我将定义一个face_off
函数,它将card
个对象作为参数并返回获胜者。如果我理解正确,您只需比较两张卡片的rank
属性并返回更高的值。然后将整个事物包裹在if __name__ == '__main__'
块中。
您实际上甚至不需要课程,卡片可以是dict
或tuple
,但是如果您想要课程,那么您可以为您的课程定义rich comparison methods,这样您就可以可以比较对象而不是属性。然后,您可以使用python的内置函数,而faceoff
只能返回max(card_object_one, card_object_two)
。默认情况下,这适用于dicts和元组。