av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:33日期:2022-07-07 17:41:33

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

創建一個紙牌類

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

代碼如下:

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

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

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

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

隨機抽取一張牌

這里借助 random 模塊實現隨機抽牌的功能

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

列表迭代、切片

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

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

排序操作

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

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

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

代碼解讀:

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

洗牌操作

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

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

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

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

這里抽取到打亂前后紙牌的前 5 個元素,已經實現洗牌的功能了!

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

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

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 一本色道精品久久一区二区三区 | 日本成人中文字幕在线观看 | 免费看啪啪网站 | 午夜在线电影网 | 欧美性大战久久久久久久蜜臀 | 国产成人精品久久二区二区91 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 国产精品一区一区三区 | 欧美99久久精品乱码影视 | 久久久久久久久久久一区二区 | 国产aⅴ爽av久久久久久久 | а_天堂中文最新版地址 | 久久久久久免费毛片精品 | 国产99小视频 | 一区二区三区视频 | 国产伦精品一区二区三区精品视频 | 久久国产成人午夜av影院武则天 | .国产精品成人自产拍在线观看6 | 色欧美片视频在线观看 | 日韩中文在线视频 | 国产视频一区二区 | 国产精品爱久久久久久久 | 欧美一级片免费看 | 一区二区av在线 | 国产超碰人人爽人人做人人爱 | 亚洲狠狠| 成人亚洲精品久久久久软件 | 国产成人免费视频网站视频社区 | 亚洲视频一区在线 | 欧美一区二区三区在线观看视频 | 中文字幕亚洲区一区二 | 亚洲国产专区 | 国产精品一区二区免费 | 在线视频一区二区三区 | 在线观看中文字幕 | 国产精品国产三级国产aⅴ中文 | 天天干精品| 亚洲欧美日韩一区二区 | 久久综合久色欧美综合狠狠 | 91国内产香蕉 | 国产免费观看视频 |