亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Python制作一副撲克牌過程詳解

 更新時間:2020年10月19日 14:47:48   作者:湘九  
這篇文章主要介紹了基于Python制作一副撲克牌過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

整理一下通過本文分享給大家, 該案例是通過 Python 類屬性創(chuàng)建一幅除去大王、小王之后的 52 張撲克牌,并實現(xiàn)隨機抽牌、排序、洗牌等功能;

創(chuàng)建一個紙牌類

一副撲克除去大王小王之外,剩下的 52 張紙牌以花色為基準(梅花、方塊、黑桃、紅心)可分為 4 組,每組有 13 張牌組成;因此可創(chuàng)建兩個列表一個來存儲花色,一個存儲 13 個字符;通過兩個列表之間的隨機組合來生成 52 張紙牌,

代碼如下:


代碼中通過collections.namedtuple模塊創(chuàng)建一個類來表示一幅紙牌,['rank','suit']分別表示紙牌中的字符(2-10,J-A)和花色;

FranchDeck 類來建 52 張紙牌,其中有兩個特殊方法,len() 返回紙牌數(shù)量,__getitem__() 獲取 position(索引) 下的指定紙牌


隨機抽取一張牌

這里借助 random 模塊實現(xiàn)隨機抽牌的功能


列表迭代、切片

因為 __getitem__ 方法 把 [] 操作交給 self._cards 列表 ,除了上面提到的 index 定位之外,F(xiàn)ranckDeck() 類還可實現(xiàn)切片、迭代操作;


排序操作

常規(guī)來說,依據(jù)點數(shù)來判斷撲克牌的大小的話,2最小,A最大。實現(xiàn)點數(shù)排序是比較簡單的,在創(chuàng)建點數(shù)列表時是以上面提到順序進行創(chuàng)建,排序時只需按照 點數(shù)所在 index 作為基準進行排序即可,

除了 點數(shù)之外還有一個 花色也需要考慮,對于花色的話,需要建立一個映射基準(也可以稱之為權重),不同花色賦予不同值;Python 的字典類型可以很方面地滿足我們的需要


代碼解讀:

1,代碼中利用字典加入了一個映射機制,黑桃為3,紅心為2,方塊次之,隨后梅花;2,創(chuàng)建 spades_high 函數(shù)來計算 每張牌的權重總值;3,利用 sorted() 函數(shù) key= spades_high 來作為排序基準,來實現(xiàn)撲克牌排序

洗牌操作

洗牌簡單來說就是對一副撲克牌重新進行無規(guī)則地排序;正常情況random.shuffle 可以很方面地實現(xiàn)這個功能,但前提需要保證對象 滿足可變協(xié)議,這里 FranchDeck() 是不滿足的,直接使用的話會報錯:


對于上面問題,只需要要把 此類由不變變成可變的即可,創(chuàng)建一個函數(shù)賦值為 __setitem__ 屬性


這里抽取到打亂前后紙牌的前 5 個元素,已經(jīng)實現(xiàn)洗牌的功能了!

根據(jù)以上的代碼部分,可以進一步開發(fā), 提前設計好 54 張撲克牌的可視化圖片,

創(chuàng)建一個 key:value 映射關系,對撲克牌字符與可視化圖片之間創(chuàng)建一個映射關系,如下圖所示,把此關系集存儲到指定數(shù)據(jù)庫或文件中,后面使用后可直接調(diào)用

按照上面的進階玩法就可以創(chuàng)建一個基于Python開發(fā)撲克牌小程序!

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Django實現(xiàn)WebSocket在線聊天室功能(channels庫)

    Django實現(xiàn)WebSocket在線聊天室功能(channels庫)

    本文基于channels庫Django實現(xiàn)WebSocket在線聊天室功能,包括安裝及創(chuàng)建django項目的全過程,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 在python tkinter界面中添加按鈕的實例

    在python tkinter界面中添加按鈕的實例

    今天小編就為大家分享一篇在python tkinter界面中添加按鈕的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python中requests庫的用法詳解

    Python中requests庫的用法詳解

    本文詳細講解了Python中requests庫的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Python自定義命令行參數(shù)選項和解析器

    Python自定義命令行參數(shù)選項和解析器

    這篇文章主要介紹了Python自定義命令行參數(shù)選項和解析器,本文主要使用的方法為argparse.ArgumentParser(),此模塊可以讓人輕松編寫用戶友好的命令行接口,程序定義它需要的參數(shù),需要的朋友可以參考下
    2023-07-07
  • NetWorkX使用方法及nx.draw()相關參數(shù)解讀

    NetWorkX使用方法及nx.draw()相關參數(shù)解讀

    這篇文章主要介紹了NetWorkX使用方法及nx.draw()相關參數(shù)解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Pycharm中出現(xiàn)ImportError:DLL load failed:找不到指定模塊的解決方法

    Pycharm中出現(xiàn)ImportError:DLL load failed:找不到指定模塊的解決方法

    這篇文章主要介紹了Pycharm中出現(xiàn)ImportError:DLL load failed:找不到指定模塊的解決方法,需要的朋友可以參考下
    2019-09-09
  • matplotlib部件之矩形選區(qū)(RectangleSelector)的實現(xiàn)

    matplotlib部件之矩形選區(qū)(RectangleSelector)的實現(xiàn)

    這篇文章主要介紹了matplotlib部件之矩形選區(qū)(RectangleSelector)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • python編程實現(xiàn)希爾排序

    python編程實現(xiàn)希爾排序

    這篇文章主要介紹了python實現(xiàn)希爾排序,已編程實現(xiàn)的希爾排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Python使用CMD模塊更優(yōu)雅的運行腳本

    Python使用CMD模塊更優(yōu)雅的運行腳本

    這篇文章主要介紹了Python使用CMD模塊更優(yōu)雅的運行腳本的方法,實例分析了Python中cmd模塊的相關使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • 深入淺析python的第三方庫pandas

    深入淺析python的第三方庫pandas

    這篇文章主要介紹了python的第三方庫pandas的相關知識,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02

最新評論