Re: [問題] 宣告變數時,有辦法先不給予名稱嗎?
※ 引述《volleyp (彼德さん)》之銘言:
: class card:
: def __init__(self, suit, number)
: #花色
: self.suit = suit
: #點數
: self.number = number
: for suit in range(4)
: for number in range(11-15)
: 宣告一個沒有名稱的card物件
: if suit == 0 :
: 物件名稱加上Spade
: 物件的suit屬性設定為0
: elif suit == 1
: 物件名稱加上Heart
: 物件的suit屬性設定為1
: .
: .
: if number == 11 :
: 物件名稱再加上Jack
: 物件的number設定為11
: .
: .
: 接下來我就可以直接調用這些card物件來做成我的牌組
: 抱歉因為我剛開始學程式語言,如果有表達不清的地方還請多包涵
: 或是有其他更好的設計方式,還請不吝指教 謝謝!
有是有, 不過這不是最好的方式
比較好的做法是把你的所有牌組合成一個 array (其實我個人會用 dict, 不過沒差)
結構像這樣
deck = [
[...] # 鬼牌
[0, 1, 2, 3 ... 13], # 黑桃
[0, 1, 2, 3 ... 13], # 紅心
[0, 1, 2, 3 ... 13], # 方塊
[0, 1, 2, 3 ... 13], # 梅花
]
這樣你就可以這樣取用
deck[1][5] # 黑桃 5
再厲害一點
SPADE = 1
HEART = 2
DIAMOND = 3
CLUB = 4
ACE = 1
JACK = 11
QUEEN = 12
KING = 13
deck[HEART][QUEEN] # 紅心 Q
deck[CLUB][3] # 梅花 3
初始化的方法也很簡單
deck = []
# append 鬼牌
for suit_id in range(4): # 花色
suit = []
suit.append(None)
for rank_id in range(1, 14):
card = Card(suit_id, rank_id)
suit.append(card)
deck.append(suit)
這樣比較容易懂, 也比較容易整理你的牌(的物件)
注意我故意先放鬼牌再放花色, 然後每個花色最前面有一個 None
這是為了要讓你 Card 物件裡的花色/牌張編號與 list 的 index 一致
--
有興趣的人可以想想看他本來的方法要怎麼實現XD
--
"問おう、貴方が私のマスターか?"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.47.18
※ 編輯: uranusjr 來自: 220.133.47.18 (03/04 17:05)
推
03/04 18:21, , 1F
03/04 18:21, 1F
推
03/04 18:26, , 2F
03/04 18:26, 2F
→
03/04 18:27, , 3F
03/04 18:27, 3F
→
03/04 18:29, , 4F
03/04 18:29, 4F
→
03/04 18:31, , 5F
03/04 18:31, 5F
推
03/04 18:32, , 6F
03/04 18:32, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章