看板 Python 關於我們 聯絡資訊
※ 引述《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)
ck574b027:我今天就在做他那種事,要推坑嗎XD 03/04 18:21
ck574b027:等等,改變數名稱做得到嗎?不就等於改dict的key? 03/04 18:26
ck574b027:我只能想到新增一個值相同的變數之後刪掉原本的。 03/04 18:27
uranusjr:不需要改變數名吧, 只要增加就好了不是嗎 @@ 03/04 18:29
ck574b027:對耶,原本的繼續在迴圈用,我以為會多一大堆冗變數XD 03/04 18:31
kilfu0701:我也比較習慣用u大的方式做 XD 03/04 18:32