首页 > 解决方案 > 要比较的排名卡

问题描述

我创建了一个名为 Deck 的类来表示 Python 中的一副扑克牌。除了小丑之外,我在其中制作了所有牌的牌堆。我正在尝试制作一个中间游戏,我必须在其中比较值。

         ["2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "JC",
         "QC", "KC", "AC", "2D", "3D", "4D", "5D", "6D", "7D", "8D",
         "9D", "10D", "JD", "QD", "KD", "AD", "2H", "3H", "4H", "5H",
         "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH", "AH", "2S",
         "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS",
         "KS", "AS"]

这是卡片列表。我如何对这些进行排名,例如,2C 小于 3C 或 4D 但与 2H 或 2S 相同?

我想知道我是否可以使用 OrderedEnum,但同时在此过程中为 2C、2D、2H、2S 分配相同的排名。

我希望当我使用“发牌”方法时,我希望能够比较两张发牌。

标签: pythonrankingplaying-cards

解决方案


这将按照描述的顺序生成你的牌组的副本,假设 A 低(移动A到字符串的末尾以使 A 高):

sorted(deck,key=lambda x:"A234567891JQK".index(x[0]))

推荐阅读