Python簡單實現一副撲克牌

2021-10-19 12:42:26 字數 2406 閱讀 6978

一、首先我們寫類

可以用len()函式來檢視一副牌有多少張

從一副牌中抽取特定的一張紙牌,比如說第一張或最後一張,是很容易的:deck[0]或deck[-1],這都是由__getitem__方法提供的。

二、隨機選牌

如果我們需要隨機選出三張牌,我們就用random.choice就行,直接加進去就行

三、其他操作

因為__getitem__方法把【】操作交給了self._cards列表,所以我們的deck類自動支援切片(slicing)操作。下面我們列出檢視一副牌中最上面3張和只看牌面是a的牌的操作。其中第二種操作的具體方法是,先抽取索引是12的那張牌,然後每隔13張牌拿1張:

deck = frenchdeck(

)print

(deck[:3

])

[card(rank=

'2', suit=

'spades'

), card(rank=

'3', suit=

'spades'

), card(rank=

'4', suit=

'spades'

)]

deck = frenchdeck(

)print

(deck[12:

:13])

[card(rank=

'a', suit=

'spades'

), card(rank=

'a', suit=

'diamonds'

), card(rank=

'a', suit=

'clubs'

), card(rank=

'a', suit=

'hearts'

)]

迭代通常是隱式的,譬如說乙個集合型別沒有實現__contains__方法,那麼in運算子就會按順序做一次迭代搜素。於是,in運算子可以用在我們的frenchdeck類上,因為它是可迭代的:

deck = frenchdeck(

)print

(card(

'q',

'clubs'

)in deck)

print

(card(

'7',

'beasts'

)in deck)

true

false

C 列印一副撲克牌

public enum pokercolor this.color,this.num 表示一副撲克牌的類 class pokers 定義乙個陣列來存放52張撲克牌 poker pokers new poker 52 用於計數建立的撲克牌個數 int index 0 一副撲克牌類的構造方法 建立一副撲...

撲克牌原始順序 Python實現

前幾天在閒逛的時候,突然看到了乙個關於撲克牌的題目,感覺還挺有意思,就試著分析了一下並用python實現了一下。貼出原題 手中一幅撲克牌,假設順序為abcdef,把第一張放到桌面上,第二張挪到最後,第三張放到桌面,第四張挪到最後,一直到所有牌都在桌面 bcdef a cdefb defb ac ef...

模擬分發撲克牌(python實現)

52張撲克牌發個4個玩家,每人13張。要求 自動生成一幅撲克牌組 洗牌 發牌到玩家手中 將玩家手中撲克牌按花色大小整理好。思路一import random import operator defauto pokers poker for i in for j in a 2 3 4 5 6 7 8 9...