所以我卡上的新手問題一次:d檢查如果列表包含相同值的4個元素
我試圖去混搭魚的基於文本的一起遊戲對電腦。
好吧,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
有什麼錯的方法是如何在卡定義? 我一直在試圖讓它工作幾個小時,但沒有運氣。
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。我會看看明天會如何,添加實際的遊戲部分。
從Python 2.7開始,使用`collections.Counter`可以更簡單。 – 2010-12-21 22:48:38