【Python】重新寫一下撲克牌排組

2021/10/10閱讀時間約 1 分鐘
翻閱了去年面試時候的題目,想想現在自己會用什麼方式重新完成這個題目,也正好最近在看python的typing模組及其他使用,使用物件導向的方式改寫了程式碼。
回顧並簡化題目:
寫出撲克牌排組,抽出13張牌,依照花色及大小排序

考慮一張牌有什麼特性?

建立一個Card類別,包含花色及數字兩個屬性。
其中花色的部分使用Enum,用auto()自動給予花色代表值

一個發牌器

想法上是一個牌組,可以透過牌組抽牌,並且要檢查牌被抽完時的狀況。
抽牌時為避免抽到重覆的牌,使用Set紀錄抽過的牌,出現過就必須重新抽取。
另外,發牌器不需要多個,因此不寫建構子__init__來產生實體物件,之後如果要開新局重複使用,只需加入一個method清空牌堆。

建立牌局

建立一個牌局實體,抽幾張牌由外面決定,作為參數傳入建構子。
目前還沒有要寫牌局邏輯,只有確認牌組是否正常。

結果

除了依花色的排序,梅花還是會排在方塊前面,也許Enum透過sort()時下的條件還要再研究調整一下。
抽出的52張牌
排序後的52張牌
抽出13張牌,與排序後比較

10會員
54內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
發表第一個留言支持創作者!