所以我再次陷入了一个新手问题:D
我正在尝试将基于文本的 go-fish 游戏与计算机混合在一起。
好的,所以 1 张卡实际上是来自两个列表的元素的元组。
suits = ['Clubs', 'Diamonds', 'Spade', 'Hearts']
ranks = [None, 'ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'jack', 'queen', 'king']
然后将其添加到甲板上并洗牌等等,然后交到手上。(我认为大部分是从thinkpython一书中得到的。在这个过程中学到了很多关于类结构和继承的知识。)
所以一只手可能看起来像这样
['Clubs 2', 'Diamonds king', 'Diamonds 2', 'Spades 2', 'Hearts 2']
如您所见,该手牌包含四个相同等级的牌,因此玩家得 1 分。但是我如何检查手是否包含排名列表中任何项目的四个实例?我是否必须遍历列表中的每个项目,或者有一些干净简单的方法?
编辑
非常感谢所有答案的家伙。:D 但是当我尝试对手中的物品使用“拆分”时,我遇到了一个属性错误。我想我应该发布更多我正在运行的代码。
完整的代码和追溯在这里
http://pastebin.com/TwHkrbED
Card中定义方法的方式有什么问题吗?我已经花了几个小时试图让它工作,但没有运气。
EDIT2
对甲板生成部分进行了一些更改。现在整个甲板是一个元组列表和更少的代码。
thedeck=[]
class Deckofcards:
suits = ['Clubs', 'Diamonds', 'Hearts', 'Spades']
ranks = ['Ace', '2', '3', '4', '5',
'6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']
def __init__(self):
for i in self.suits:
for a in self.ranks:
thedeck.append((i, a))
似乎另一种方式过于复杂,但是idk。明天我会看看情况如何,添加实际的游戏部分。