最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)戰(zhàn)之德州撲克第二步-判斷牌型

 更新時(shí)間:2021年04月21日 16:11:24   作者:劉sir學(xué)代碼  
這篇文章主要介紹了python實(shí)戰(zhàn)之德州撲克第二步-判斷牌型,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下

一、前言

現(xiàn)在到了,第二步,上一步我們已經(jīng)做好了發(fā)牌模塊,有了手牌,就需要判斷牌型了,平時(shí)打撲克時(shí),我們需要使用大腦進(jìn)行判斷自己手里的牌屬于那種類型的,現(xiàn)在我們需要通過(guò)程序來(lái)進(jìn)行判斷!

在以下操作中,需要玩家手里的牌為五張,不然無(wú)法判斷!

先給出發(fā)牌的一個(gè)效果圖:

給2人發(fā)五張牌:

在這里插入圖片描述

二、分析

通過(guò)觀察可以看出每名玩家的牌是以字符串的形式存儲(chǔ)的,每張牌的字符串長(zhǎng)度時(shí)3(?。。。?/p>

判斷牌型就需要熟悉牌型的組成了

皇家同花順:同一花色最大的順子
同花順:同一花色的順子
四條:四張相同+1個(gè)單張
葫蘆:三張相同+1對(duì)
同花:5張牌花色相同
順子:花色不同的順子
三條:三張相同+2單張
兩對(duì):2對(duì)+1單
一對(duì):1對(duì)+3單張
高牌:五個(gè)單張牌

我們把牌型分為兩類,同花的{皇家同花順,同花順,同花},其余的為非同花

接下來(lái)就先需要判斷是否為同花,然后在具體判斷,例如皇家同花順,只有一種類型,直接判斷即可,其余的可看下方!

事不宜遲,上手操作!

三、敲代碼

這里我們得先知道,玩家的花色,每張牌占三個(gè)字符串,花色占一個(gè),牌值占兩個(gè),我們是不是可以通過(guò)分片操作,把花色提取出來(lái),保存到一個(gè)列表中尼!方便操作!

COL=copy.deepcopy(C)
    for I in range(len(COL)):
        for j in range(len(COL[I])):
            COL[I][j] = COL[I][j][0:1]
    #print("color",C)
    return COL

代碼中又出現(xiàn)了深拷貝這個(gè)函數(shù),具體作用上一篇文章已經(jīng)講過(guò)了,不再重復(fù)!

大概流程:
	首先深拷貝,含有玩家牌的二維數(shù)組
	雙重循環(huán)提取花色,就得到了一個(gè)僅含花色的二位列表且對(duì)應(yīng)的玩家沒(méi)有改變

然后就是判斷花色是不是一樣

def color_analysis(Color):#是否為同色,傳入一維花色列表
    f="false"#同花
    t="true"#非同花
    col=len(set(Color))
    if col>1:
        return f
    else:return t

def color_type(CO):#存儲(chǔ)花色是否一樣  是:true  否:false
    A=["0" for i in range(len(CO))]
    for i in range(len(CO)):
        A[i]=color_analysis(CO[i])
    #print(a)
    return A

通過(guò)兩個(gè)函數(shù)進(jìn)行判斷,使用到了set()去重,如果去重之后為1,則為同花,不唯1則不為同花

我們判斷好了是否為同花,接下來(lái)就是判斷牌值了,首先需要取牌值,思路和取花色一樣的,就不貼代碼了,取值之后,因?yàn)楹蠮,Q,K,A,我們需要特殊處理一下,我們把A替換為14,K替換為13,以此類推J為11,特殊處理之后得到的是字符型的值,我們還需要整型化,為了方便比較,還需要進(jìn)行排序操作

一下只貼出部分代碼,已經(jīng)有了思路,相信你可以把代碼補(bǔ)全!

def get_int_value(value):
    value=get_transform_value(value)
    for i in range(len(value)):
        value[i]=list(map(int,value[i]))
    return value
def sort_values(values):
    values=get_int_value(values)
    for i in range(len(values)):
        values[i].sort(reverse=True)
    return values

經(jīng)過(guò)以上操作,我們得到了玩家是手里的牌是否為同花及其牌值,且順序是對(duì)應(yīng)的

然后就是比較了,思路上面已經(jīng)給出了,給出關(guān)鍵代碼:

def judge_card_type(value,Color_type):#value為一個(gè)玩家的牌值須按照從大到小排好序,color為對(duì)應(yīng)的花色
    result=0
    num=0#牌值相同的個(gè)數(shù)
    if len(value)!=5:
        print("牌數(shù)不為五張或過(guò)多,無(wú)法判斷!")
        sys.exit()
    for A in range(0, len(value)):#統(tǒng)計(jì)相等的個(gè)數(shù) 或者是否為順子
        if value[A-1]- value[A]== 1:
            result += 1#如果為順子,則resul=4
        elif value[A] == value[A - 1]:
            num += 1

    if Color_type=="true":#同花
        if value==[13,12,11,10,9]:#皇家同花順
            return "0"
        elif result==4:#同花順
            return "1"
        else:return "4"#同花
    if Color_type=="false":#非同花
        if num==3:#四條或葫蘆
            if value[1]==value[2]==value[3]==value[4] or value[0]==value[1]==value[2]==value[3]:
                return "2"#四條
            else: return "3"#葫蘆
        elif result==4:#順子
            return "5"
        elif num==2:#三條或兩隊(duì)
            if value[0]==value[1]==value[2] or value[1]==value[2]==value[3] or value[2]==value[3]==value[4]:
                return "6"#三條
            else: return "7"#兩隊(duì)
        elif num==1:#一對(duì)
            return "8"
        else:return "9"#高牌

已經(jīng)知道花色,和牌值,只需要進(jìn)行簡(jiǎn)單的判斷即可,小編給出的方法比較普通,相信你們可以寫出更好的!

四、總結(jié)

上面一段代碼,只是返回不同牌型對(duì)應(yīng)的數(shù)值,我們只需做一個(gè)簡(jiǎn)單的轉(zhuǎn)換即可,相信你可以做到,代碼中注釋也給出了對(duì)應(yīng)的牌型

點(diǎn)擊鏈接查看

python實(shí)戰(zhàn)之德州撲克第一步-發(fā)牌

python實(shí)戰(zhàn)之德州撲克第三步-比較大小

到此這篇關(guān)于python實(shí)戰(zhàn)之德州撲克第二步-判斷牌型的文章就介紹到這了,更多相關(guān)python實(shí)現(xiàn)德州撲克判斷牌型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python實(shí)現(xiàn)五子棋-(人機(jī)對(duì)戰(zhàn))

    基于Python實(shí)現(xiàn)五子棋-(人機(jī)對(duì)戰(zhàn))

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)五子棋游戲(人機(jī)對(duì)戰(zhàn)版),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-05-05
  • tensorflow中tf.reduce_mean函數(shù)的使用

    tensorflow中tf.reduce_mean函數(shù)的使用

    這篇文章主要介紹了tensorflow中tf.reduce_mean函數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python使用property完成數(shù)據(jù)隱藏封裝與校驗(yàn)

    python使用property完成數(shù)據(jù)隱藏封裝與校驗(yàn)

    這篇文章主要為大家詳細(xì)介紹了python使用property完成數(shù)據(jù)隱藏封裝與校驗(yàn),實(shí)現(xiàn)安全修改,文中的示例代碼講解詳細(xì),希望對(duì)大家有所幫助
    2024-11-11
  • 計(jì)算python腳本執(zhí)行時(shí)間的多種方法

    計(jì)算python腳本執(zhí)行時(shí)間的多種方法

    在編寫Python腳本時(shí),了解腳本的執(zhí)行時(shí)間通常是很有用的,特別是在優(yōu)化代碼或評(píng)估性能時(shí),Python提供了多種方法來(lái)測(cè)量腳本的執(zhí)行時(shí)間,從內(nèi)置模塊到第三方庫(kù),可以選擇適合你需求的方式,本文將介紹計(jì)算 Python 腳本執(zhí)行時(shí)間的多種方法,需要的朋友可以參考下
    2023-11-11
  • Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別

    Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別

    invoke_shell 使用 SSH shell channel,而 exec_command 使用 SSH exec channel,本文主要介紹了Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 舉例講解Django中數(shù)據(jù)模型訪問(wèn)外鍵值的方法

    舉例講解Django中數(shù)據(jù)模型訪問(wèn)外鍵值的方法

    這篇文章主要介紹了舉例講解Django中數(shù)據(jù)模型訪問(wèn)外鍵值的方法,Django是最具人氣的Python web開(kāi)發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • 詳解Python字符串切片

    詳解Python字符串切片

    這篇文章主要介紹了Python字符串切片,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 初學(xué)python的操作難點(diǎn)總結(jié)(新手必看篇)

    初學(xué)python的操作難點(diǎn)總結(jié)(新手必看篇)

    下面小編就為大家?guī)?lái)一篇初學(xué)python的操作難點(diǎn)總結(jié)(新手必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 快速了解Python開(kāi)發(fā)中的cookie及簡(jiǎn)單代碼示例

    快速了解Python開(kāi)發(fā)中的cookie及簡(jiǎn)單代碼示例

    這篇文章主要介紹了快速了解Python開(kāi)發(fā)中的cookie及簡(jiǎn)單代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Django使用echarts進(jìn)行可視化展示的實(shí)踐

    Django使用echarts進(jìn)行可視化展示的實(shí)踐

    可視化是將數(shù)據(jù)轉(zhuǎn)換成圖形或圖像在屏幕上顯示出來(lái),本文主要介紹了Django使用echarts進(jìn)行可視化展示的實(shí)踐,感興趣的可以了解一下
    2021-06-06

最新評(píng)論

五家渠市| 庆云县| 商都县| 章丘市| 水城县| 井研县| 金溪县| 高邮市| 江油市| 杂多县| 尉氏县| 永昌县| 五常市| 阳江市| 城市| 偃师市| 通渭县| 开江县| 镇安县| 和林格尔县| 荆门市| 鄢陵县| 美姑县| 历史| 苏尼特左旗| 昌黎县| 同仁县| 读书| 贡山| 新营市| 台安县| 寻甸| 个旧市| 佛冈县| 德兴市| 义马市| 开化县| 安新县| 峨眉山市| 图木舒克市| 辽源市|