-1

好吧,在观看了很多关于课程的教程视频后,我仍然无法理解这些我必须做的作业。

我需要编写一个基本上做高牌的程序,这意味着我需要两张牌来面对,一张是花色和排名的赢家。

2-14 排名 (11=jack, 12=queen, 13=king, 14=ace)

1-4 花色(梅花、方块、红心、黑桃)

这就是我到目前为止所拥有的

    class Card:
        def __init__(self, inRank, inSuit):
        self.__rank = inRank
        self.__suit = inSuit

有人可以在这里指出我正确的方向吗?我正在为如何开始这一点画空白。

4

2 回答 2

1

只是一个快速的旁注。Python会破坏名称以两个下划线开头的类和实例变量。我建议使用一个下划线(或根本不使用)。

回到你原来的问题。我的下一步是创建一个faceoff接受另一个卡片实例的方法。此方法可以返回获胜的卡片,也可以返回一个布尔值,让您知道来电者是否获胜。

例如:

def faceoff(self, other):
    # Compare self against other
    # ...

    # if self beats other
        return True
    return False
于 2013-04-22T04:52:02.283 回答
1

您的课程很好,尽管我会删除属性中的下划线,因为您尚未实现任何用于比较对象的方法。我会定义一个face_off-function 将card对象作为参数并返回获胜者。如果我理解正确,您只需比较rank两张卡的属性并返回较高的值。然后将整个东西包裹在一个if __name__ == '__main__'块中。

您实际上甚至不需要为此的类,卡片可以是dictor tuple,但是如果您想要一个类,那么您可以为您的类定义丰富的比较方法,以便您可以比较对象而不是属性。然后你可以利用 python 的内置函数,你faceoff可以返回max(card_object_one, card_object_two). 默认情况下,这适用于字典和元组。

于 2013-04-22T04:52:18.703 回答