亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

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

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

代碼如下:

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

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

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

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

隨機(jī)抽取一張牌

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

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

列表迭代、切片

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

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

排序操作

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

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

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

代碼解讀:

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

洗牌操作

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

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

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

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

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

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

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

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

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

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

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 亚洲黄色中文字幕 | 中文字幕亚洲图片 | 国产chiese在线视频 | 免费欧洲毛片a级视频 | 区二区三区四区免费视频 | 精品免费在线 | 欧美精品白嫩bbwbbwbbw | 国产午夜视频 | 啪啪免费网站入口链接 | 中文字幕在线综合 | 国产精品杨幂va在线观看 | 国产欧美日韩在线一区二区不卡 | 免费人成激情视频在线看 | 国产精品成人麻豆专区 | 性视频免费视频大全 | 亚洲视频重口味 | 国产精品日韩欧美在线第3页 | 国产喷水吹潮视频在线播放 | 九九热国产精品视频 | 成年人黄色大片大全 | 欧美福利片在线观看 | 国产精品好好热在线观看 | 九九精品视频在线免费观看 | 岛国福利视频 | 嫩草影院麻豆久久视频 | 日韩中文字幕在线不卡 | 欧美日韩国产另类在线观看 | 欧美日韩黄色 | 视频一区国产 | 亚洲成年看片在线观看男男 | 亚洲黄色一级毛片 | 看免费黄色一级视频 | 麻豆果冻传媒精品二三区 | 久久国产精品久久国产片 | 日韩精品1 | 国产精品福利久久香蕉中文 | 91四虎国自产在线播放线 | 国产v国产v片大片线观看网站 | 亚洲精品午夜久久aaa级久久久 | 成人女人a毛片在线看 | 91啦中文成人 |