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

更新於 發佈於 閱讀時間約 2 分鐘

翻閱了去年面試時候的題目,想想現在自己會用什麼方式重新完成這個題目,也正好最近在看python的typing模組及其他使用,使用物件導向的方式改寫了程式碼。

回顧並簡化題目:
寫出撲克牌排組,抽出13張牌,依照花色及大小排序

考慮一張牌有什麼特性?

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

raw-image

一個發牌器

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

raw-image

建立牌局

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

raw-image

結果

除了依花色的排序,梅花還是會排在方塊前面,也許Enum透過sort()時下的條件還要再研究調整一下。

抽出的52張牌

抽出的52張牌


排序後的52張牌

排序後的52張牌


抽出13張牌,與排序後比較

抽出13張牌,與排序後比較





留言
avatar-img
留言分享你的想法!
avatar-img
Err500
12會員
77內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2022/06/06
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
Thumbnail
2022/06/06
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
Thumbnail
2020/06/07
Youtube上逛著逛著看到techwithtim的線上教學,這是一個pygame的模組練習,只\是我想了解深一點的是物件導向的寫法應用。影片大約兩小時,實際邊動手coding,一邊看著影片的講解,結果花在這上面的時間遠遠超過我的預期。
Thumbnail
2020/06/07
Youtube上逛著逛著看到techwithtim的線上教學,這是一個pygame的模組練習,只\是我想了解深一點的是物件導向的寫法應用。影片大約兩小時,實際邊動手coding,一邊看著影片的講解,結果花在這上面的時間遠遠超過我的預期。
Thumbnail
2020/05/20
常常會在其他教學影片中看到if __name__ == "__main__"  的寫法,為什麼要這樣做呢?
Thumbnail
2020/05/20
常常會在其他教學影片中看到if __name__ == "__main__"  的寫法,為什麼要這樣做呢?
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
花牌大小適中、手感厚實沉穩。一組48張的紙牌中畫有12個月份每月代表的花朵各4張、以牌上圖樣區分牌的大小。當年撲克牌自葡萄牙傳入日本時、當時的撲克牌為一組48張因而花牌張數亦為48張、牌的大小區分方式和撲克牌不同。
Thumbnail
花牌大小適中、手感厚實沉穩。一組48張的紙牌中畫有12個月份每月代表的花朵各4張、以牌上圖樣區分牌的大小。當年撲克牌自葡萄牙傳入日本時、當時的撲克牌為一組48張因而花牌張數亦為48張、牌的大小區分方式和撲克牌不同。
Thumbnail
幫大家抽牌看看 ~   有對應的人 or 有感覺的人,就參考看看. 沒感覺的人,就自動跳過,下次有緣 再參考看看.   * 每個人的感覺 都不太一樣,請收取 各自的靈性訊息. 牌卡解讀: 線上 親自指導 ( 抽牌解讀 ) ~ * 彈性時間 ( 諮詢輔導 )
Thumbnail
幫大家抽牌看看 ~   有對應的人 or 有感覺的人,就參考看看. 沒感覺的人,就自動跳過,下次有緣 再參考看看.   * 每個人的感覺 都不太一樣,請收取 各自的靈性訊息. 牌卡解讀: 線上 親自指導 ( 抽牌解讀 ) ~ * 彈性時間 ( 諮詢輔導 )
Thumbnail
最近我一直在初心二星徘徊,升不上去。 所以我找了一些資料,用「科學」的方式提升實力。
Thumbnail
最近我一直在初心二星徘徊,升不上去。 所以我找了一些資料,用「科學」的方式提升實力。
Thumbnail
小穎每次看到小賢在變魔術,都覺得很帥,於是他也去看了一撲克牌魔術大全,從中他選擇了一個魔術要來跟小賢較量一下。 下課時小穎走到小賢旁邊說:「小賢,我跟你玩個魔術。」 小賢有點驚訝地說:「你沒說錯吧!」 「真的啦!」一說完,小穎就拿出一副撲克牌,交到小賢手上。
Thumbnail
小穎每次看到小賢在變魔術,都覺得很帥,於是他也去看了一撲克牌魔術大全,從中他選擇了一個魔術要來跟小賢較量一下。 下課時小穎走到小賢旁邊說:「小賢,我跟你玩個魔術。」 小賢有點驚訝地說:「你沒說錯吧!」 「真的啦!」一說完,小穎就拿出一副撲克牌,交到小賢手上。
Thumbnail
隨意從一副撲克牌中抽出15張,分別為: 黑桃 2、4、7、9、J 紅心 A、5 方塊 A、4、Q 梅花 4、5、6、Q、K
Thumbnail
隨意從一副撲克牌中抽出15張,分別為: 黑桃 2、4、7、9、J 紅心 A、5 方塊 A、4、Q 梅花 4、5、6、Q、K
Thumbnail
平常偶爾會玩克朗代克紙牌接龍(Klondike Solitaire),是紅、黑相間的接龍。 這篇文章會誕生的原因:我的收集慾。收集的要素會讓玩家投入更多心力,我之後大概不會這麼認真玩了XD
Thumbnail
平常偶爾會玩克朗代克紙牌接龍(Klondike Solitaire),是紅、黑相間的接龍。 這篇文章會誕生的原因:我的收集慾。收集的要素會讓玩家投入更多心力,我之後大概不會這麼認真玩了XD
Thumbnail
這篇文章將利用之前所學過的一些東西,包括if敘述、串列、while迴圈、函數等等的觀念,來實作一個撲克牌的小遊戲-21點。
Thumbnail
這篇文章將利用之前所學過的一些東西,包括if敘述、串列、while迴圈、函數等等的觀念,來實作一個撲克牌的小遊戲-21點。
Thumbnail
翻閱了去年面試時候的題目,想想現在自己會用什麼方式重新完成這個題目,也正好最近在看python的typing模組及其他使用,使用物件導向的方式改寫了程式碼。
Thumbnail
翻閱了去年面試時候的題目,想想現在自己會用什麼方式重新完成這個題目,也正好最近在看python的typing模組及其他使用,使用物件導向的方式改寫了程式碼。
Thumbnail
這次要為大家介紹的桌遊是屬於「風險管理」類型的紙牌遊戲『亡者神抽』,它有點像「撲克牌21點」這類運氣成份很重的玩法,但這款桌遊比的不是點數超過21點的大小就會爆,而是玩家們會糾結在是否會抽到相同花色的寶藏牌而導致爆炸失去珍貴的寶物 (,,Ծ‸Ծ,, )|||
Thumbnail
這次要為大家介紹的桌遊是屬於「風險管理」類型的紙牌遊戲『亡者神抽』,它有點像「撲克牌21點」這類運氣成份很重的玩法,但這款桌遊比的不是點數超過21點的大小就會爆,而是玩家們會糾結在是否會抽到相同花色的寶藏牌而導致爆炸失去珍貴的寶物 (,,Ծ‸Ծ,, )|||
Thumbnail
這次來介紹一款蠻簡單、輕鬆,卻又小心機的桌遊『搶尾刀』,其卡牌也不過單純只用了 3、4、5、6、7 這五種數字牌而已,就讓玩家們在玩的過程中,體驗到充滿刀光劍影的煙硝味喔 ^^ (背上被其它玩家補了很多刀的感覺,喔…難怪要取名叫『搶尾刀』,呵~) 在遊戲結束後擁有最多張數字牌的玩家獲勝。
Thumbnail
這次來介紹一款蠻簡單、輕鬆,卻又小心機的桌遊『搶尾刀』,其卡牌也不過單純只用了 3、4、5、6、7 這五種數字牌而已,就讓玩家們在玩的過程中,體驗到充滿刀光劍影的煙硝味喔 ^^ (背上被其它玩家補了很多刀的感覺,喔…難怪要取名叫『搶尾刀』,呵~) 在遊戲結束後擁有最多張數字牌的玩家獲勝。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News