十點半遊戲是寫好了,可是老師又讓我們用類的方式改寫,這可真是……
只能往下寫了!
首先我寫了這麼一段代碼,創建一副撲克牌
撲克牌是很普通的,有着兩個屬性:牌面和標誌 運行後是創建了個cards列表,在下圖裏我們就可以看見cards裏有52張牌,這裏的每張“牌”都是一個對象
我隨便打開第50號對象,裏面是這樣的
裏面出現了兩個屬性,牌面和標誌
都是我們在Card類中用__init__方法定義過的
回頭來看我這段代碼
紅框裏的代碼可以創建對象
也就是創建Card類對應的實例,cards列表中的每張牌都由上面的這句話創建
如果要取出某張牌的屬性,按下面這樣做
這裏分別取出了第1張牌的兩個屬性
順便展示一個比較炫酷的打印方式:.format
不錯吧,很有python的感覺
要打印前十張牌,可以按下面的方法做
都出來了
然後我想了想,兩個屬性可能還不夠
大概還需要一個value屬性記錄牌在遊戲中的數值大小
於是我寫了個函數 calculate 用於每張牌的計算點數
這裏用到了字典在創建每個撲克牌對象的時候,我們都可以讓它知道自己的值是多少
嗯,可以看到新的屬性產生了
隨便打開張牌,這是張黑桃A,數值大小是1
再來一個炫酷的打印
牌和數值都一起出來了,很有python的感覺對吧
這裏也用到了.format(),只是截圖沒截到
好像還不夠帶勁
我們再編寫一個有趣的代碼
比如這樣定義一個玩家類,然後我們創建玩家類的實例,也就是創建四個玩家對象
就像下面看到的這樣,我創建了一個玩家列表,列表裏裝着四個玩家
我們可以打開玩家
哈,好極了
不過我們可以注意到,每個玩家的手(hand)都是空的
他們一張牌也沒有,還玩毛呢??
不着急,現在給他們牌吧
↑上面這個[ ]是他們空空的手(hand)
現在我們在下面加點東西
好,給牌
每個玩家手裏都握着一張牌了,歐耶
現在,讓我們繼續
打開“你媽”的hand
發現裏面有張黑桃2
哈,okok了
還是有些無聊,那就再加點料
我又寫了一段代碼
讓我們運行一下
嗯?
就這樣沒了?有鬼用啊,變量資源管理也是空的嘛
然而並不是這樣的
我們在控制檯輸入locals(),控制檯出現了下面的東西
什麼?程序已經幫我創建好了5個對象>??
原來是這樣啊,我們呼叫一下這幾個對象吧
欸,居然真的可以呼叫出來
雖然我們這個類中只給了Num這個屬性,但是你可以自己加嘛
不過也說明這幾個對象是真實存在的!
太好了,我有對象了!!
- 現在回顧下這篇學習筆記主要講了什麼
- python類__init__方法的使用
- for循環創建撲克牌
- 列表(數組)的操作和使用
- 字典的使用
- 更多
先寫到這了,學習還在繼續……
原創