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

閱讀時間約 2 分鐘

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

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

考慮一張牌有什麼特性?

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

一個發牌器

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

建立牌局

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

結果

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

抽出的52張牌

排序後的52張牌

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

即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
13會員
64內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Err500 的其他內容
Input: head = [1,2,3,4,5] Output: [3,4,5] 單看列表只是要找中間值,不過給定的資料結構不是陣列,而是鏈結串列。
之前跳過的題目,回來補完成。 Input: nums = [1,2,3,4,5,6,7], k = 3 Output: [5,6,7,1,2,3,4]
今日題目: 把一行字內每個單字都反轉字元。 Input: s = "Let's take LeetCode contest" Output: "s'teL ekat edoCteeL tsetnoc"
今日題目:字串反轉 Input: s = ["h","e","l","l","o"] Output: ["o","l","l","e","h"]
題目如下: Input: numbers = [2,7,11,15], target = 9 Output: [1,2]
Input: head = [1,2,3,4,5] Output: [3,4,5] 單看列表只是要找中間值,不過給定的資料結構不是陣列,而是鏈結串列。
之前跳過的題目,回來補完成。 Input: nums = [1,2,3,4,5,6,7], k = 3 Output: [5,6,7,1,2,3,4]
今日題目: 把一行字內每個單字都反轉字元。 Input: s = "Let's take LeetCode contest" Output: "s'teL ekat edoCteeL tsetnoc"
今日題目:字串反轉 Input: s = ["h","e","l","l","o"] Output: ["o","l","l","e","h"]
題目如下: Input: numbers = [2,7,11,15], target = 9 Output: [1,2]
你可能也想看
Google News 追蹤
Thumbnail
十三支在近年來有越來越多年輕人接觸到,大多數都是因為線上十三支 贏家娛樂城就要來跟大家分享關於十三支玩法怎麼玩 這裡有非常詳細的十三支教學,另外還有提供一些十三支技巧給大家參考 現在撲克牌遊戲非常多也非常流行,想了解更多這邊通通都有提供給大家
Thumbnail
今天要實作和體驗的是拼單字的小遊戲,類似小時候在報紙、英文童書、或著電子辭典的小遊戲,一開始都是空白,隨著使用者拼對而逐漸顯示原本的單字樣貌,直到整個單字拼出來為止。 場景: 電腦隨機從單字庫裡面撈一個單字出來。 讓使用者扮演玩家去玩拼單字的遊戲。
Thumbnail
賓果這款遊戲我想大家應該都不陌生才對,常常會出現在各種活動場合,看誰最快達到指定的連線數量,誰就能得到獎品 賓果遊戲基本概念 這種賓果遊戲使用的卡片由一個5x5的方格組成,每個方格中填入1到25之間的數字,每張卡片上的數字排列是隨機的。 🕹️遊戲規則 準備工作:每個玩家獲得一張或多
Thumbnail
原版的官方規則導入記分機制,但因為計算過於繁複,所以一般遊玩時較少採用。本變體規則旨在還原原規則的策略性,並保留平常的遊玩樂趣。 1. 配件準備 4枚不同顏色的棋子(紅、藍、黃、綠),以及一張標記0~15的場地。 2. 記分方式 一開始所有棋子都在0的位置。每一局結束時,贏家以外的所有人拿出
Thumbnail
C同學說想玩撲克牌遊戲。於是,昨夜大家都洗完澡後,到我們帳篷集合開打。 剛開始她拿出一幅陌生的紙牌桌遊,兩個年輕人把兩個老人家電的慘兮兮。她們在學校就玩過的,反應也比我們夫妻快多了,為了挽回自信心,我建議玩一般撲克牌裡,“大老二遊戲”。
Thumbnail
給定一個整數陣列hand代表手牌點數,和參數groupSize。請問能不能每groupSize牌一組,每一組都拼出順子? 如果可以,返回True。如果無解,返回False。演算法使用最小堆積或排序。關鍵知識點:從小到大掃描每張牌,檢查能不能組成牌組長度為groupSize的順子即可。
前言 上文提及訓練記憶術時常使用撲克牌做為訓練內容,在訓練時首先必須先將每一張的撲克牌轉換成一個圖像,然後以一次翻開兩張撲克牌的方式翻開,並迅速將這兩張圖像聯結在一起,接著將之放置在一個事先規畫好的固定的位置上,如此一一將兩張圖像聯結在一起,並將之放置在不同的位置上,在回憶時,順著位置走一圈就
Thumbnail
以下均已日本麻將遊戲《 雀魂麻將》中的牌為例 你好,又見面了!第二課我們要來學如何在日麻中和牌。那什麼是和牌呢,就是完成指定的牌型以及役種(下一課的內容)就可以和牌了,今天會先來介紹基本的和牌型 gogo!! 要怎麼和牌呢?一開始你的手上會有13張牌,輪到你時你會抽一張牌並且丟掉一張不要的,
Thumbnail
要學會日本麻將的第一課就是先要來認識牌桌上會出現哪些牌! 以下均已日本麻將遊戲《 雀魂麻將》中的牌為例 牌桌上會出現的牌就是如上圖這些牌,每種牌個有四張,而且這些牌是有順序的喔,就算是看似沒有順序的字牌,也就是右手邊的 風牌 三元牌 這種牌也是有順序的喔,順序就是照著圖上的排序一樣,例如 一萬>
Thumbnail
十三支在近年來有越來越多年輕人接觸到,大多數都是因為線上十三支 贏家娛樂城就要來跟大家分享關於十三支玩法怎麼玩 這裡有非常詳細的十三支教學,另外還有提供一些十三支技巧給大家參考 現在撲克牌遊戲非常多也非常流行,想了解更多這邊通通都有提供給大家
Thumbnail
今天要實作和體驗的是拼單字的小遊戲,類似小時候在報紙、英文童書、或著電子辭典的小遊戲,一開始都是空白,隨著使用者拼對而逐漸顯示原本的單字樣貌,直到整個單字拼出來為止。 場景: 電腦隨機從單字庫裡面撈一個單字出來。 讓使用者扮演玩家去玩拼單字的遊戲。
Thumbnail
賓果這款遊戲我想大家應該都不陌生才對,常常會出現在各種活動場合,看誰最快達到指定的連線數量,誰就能得到獎品 賓果遊戲基本概念 這種賓果遊戲使用的卡片由一個5x5的方格組成,每個方格中填入1到25之間的數字,每張卡片上的數字排列是隨機的。 🕹️遊戲規則 準備工作:每個玩家獲得一張或多
Thumbnail
原版的官方規則導入記分機制,但因為計算過於繁複,所以一般遊玩時較少採用。本變體規則旨在還原原規則的策略性,並保留平常的遊玩樂趣。 1. 配件準備 4枚不同顏色的棋子(紅、藍、黃、綠),以及一張標記0~15的場地。 2. 記分方式 一開始所有棋子都在0的位置。每一局結束時,贏家以外的所有人拿出
Thumbnail
C同學說想玩撲克牌遊戲。於是,昨夜大家都洗完澡後,到我們帳篷集合開打。 剛開始她拿出一幅陌生的紙牌桌遊,兩個年輕人把兩個老人家電的慘兮兮。她們在學校就玩過的,反應也比我們夫妻快多了,為了挽回自信心,我建議玩一般撲克牌裡,“大老二遊戲”。
Thumbnail
給定一個整數陣列hand代表手牌點數,和參數groupSize。請問能不能每groupSize牌一組,每一組都拼出順子? 如果可以,返回True。如果無解,返回False。演算法使用最小堆積或排序。關鍵知識點:從小到大掃描每張牌,檢查能不能組成牌組長度為groupSize的順子即可。
前言 上文提及訓練記憶術時常使用撲克牌做為訓練內容,在訓練時首先必須先將每一張的撲克牌轉換成一個圖像,然後以一次翻開兩張撲克牌的方式翻開,並迅速將這兩張圖像聯結在一起,接著將之放置在一個事先規畫好的固定的位置上,如此一一將兩張圖像聯結在一起,並將之放置在不同的位置上,在回憶時,順著位置走一圈就
Thumbnail
以下均已日本麻將遊戲《 雀魂麻將》中的牌為例 你好,又見面了!第二課我們要來學如何在日麻中和牌。那什麼是和牌呢,就是完成指定的牌型以及役種(下一課的內容)就可以和牌了,今天會先來介紹基本的和牌型 gogo!! 要怎麼和牌呢?一開始你的手上會有13張牌,輪到你時你會抽一張牌並且丟掉一張不要的,
Thumbnail
要學會日本麻將的第一課就是先要來認識牌桌上會出現哪些牌! 以下均已日本麻將遊戲《 雀魂麻將》中的牌為例 牌桌上會出現的牌就是如上圖這些牌,每種牌個有四張,而且這些牌是有順序的喔,就算是看似沒有順序的字牌,也就是右手邊的 風牌 三元牌 這種牌也是有順序的喔,順序就是照著圖上的排序一樣,例如 一萬>