婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python實戰(zhàn)之德州撲克第二步-判斷牌型

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

熱門標(biāo)簽:南京銷售外呼系統(tǒng)軟件 浙江電銷卡外呼系統(tǒng)好用嗎 地圖制圖標(biāo)注位置改變是移位嗎 蓋州市地圖標(biāo)注 315電話機(jī)器人廣告 地圖標(biāo)注的意義點 地圖標(biāo)注微信發(fā)送位置不顯示 房產(chǎn)電銷外呼系統(tǒng) 上海機(jī)器人外呼系統(tǒng)哪家好

一、前言

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

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

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

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

二、分析

通過觀察可以看出每名玩家的牌是以字符串的形式存儲的,每張牌的字符串長度時3(!!!)

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

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

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

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

事不宜遲,上手操作!

三、敲代碼

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

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)了深拷貝這個函數(shù),具體作用上一篇文章已經(jīng)講過了,不再重復(fù)!

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

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

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

def color_type(CO):#存儲花色是否一樣  是: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

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

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

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

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)過以上操作,我們得到了玩家是手里的牌是否為同花及其牌值,且順序是對應(yīng)的

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

def judge_card_type(value,Color_type):#value為一個玩家的牌值須按照從大到小排好序,color為對應(yīng)的花色
    result=0
    num=0#牌值相同的個數(shù)
    if len(value)!=5:
        print("牌數(shù)不為五張或過多,無法判斷!")
        sys.exit()
    for A in range(0, len(value)):#統(tǒng)計相等的個數(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:#三條或兩隊
            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"#兩隊
        elif num==1:#一對
            return "8"
        else:return "9"#高牌

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

四、總結(jié)

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

點擊鏈接查看

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

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

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

您可能感興趣的文章:
  • 基于Python制作一副撲克牌過程詳解
  • Python用類實現(xiàn)撲克牌發(fā)牌的示例代碼
  • python實現(xiàn)四人制撲克牌游戲
  • python模擬實現(xiàn)分發(fā)撲克牌
  • 華為校園招聘上機(jī)筆試題 撲克牌大小(python)
  • Python實現(xiàn)比較撲克牌大小程序代碼示例
  • python實戰(zhàn)之德州撲克第三步-比較大小

標(biāo)簽:臨汾 貴州 日照 金華 雙鴨山 克拉瑪依 陽泉 赤峰

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python實戰(zhàn)之德州撲克第二步-判斷牌型》,本文關(guān)鍵詞  python,實戰(zhàn),之,德州,撲克,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python實戰(zhàn)之德州撲克第二步-判斷牌型》相關(guān)的同類信息!
  • 本頁收集關(guān)于python實戰(zhàn)之德州撲克第二步-判斷牌型的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 绥阳县| 鄂尔多斯市| 乡城县| 称多县| 城固县| 汝阳县| 西林县| 瑞昌市| 宁波市| 百色市| 醴陵市| 麻城市| 北碚区| 湘西| 津南区| 木兰县| 栖霞市| 湾仔区| 湘阴县| 新竹县| 岗巴县| 鹤壁市| 长宁区| 会理县| 武川县| 竹北市| 固安县| 尼玛县| 井冈山市| 大冶市| 涟源市| 明光市| 泗洪县| 千阳县| 大埔区| 金塔县| 沛县| 沙田区| 博罗县| 游戏| 八宿县|