• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python实战之德州扑克第二步-判断牌型

python 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论
文章目录[隐藏]

一、前言

现在到了,第二步,上一步我们已经做好了发牌模块,有了手牌,就需要判断牌型了,平时打扑克时,我们需要使用大脑进行判断自己手里的牌属于那种类型的,现在我们需要通过程序来进行判断!

在以下操作中,需要玩家手里的牌为五张,不然无法判断!

先给出发牌的一个效果图:

给2人发五张牌:

二、分析

通过观察可以看出每名玩家的牌是以字符串的形式存储的,每张牌的字符串长度时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

代码中又出现了深拷贝这个函数,具体作用上一篇文章已经讲过了,不再重复!

大概流程:
	首先深拷贝,含有玩家牌的二维数组
	双重循环提取花色,就得到了一个仅含花色的二位列表且对应的玩家没有改变

然后就是判断花色是不是一样

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

通过两个函数进行判断,使用到了set()去重,如果去重之后为1,则为同花,不唯1则不为同花

我们判断好了是否为同花,接下来就是判断牌值了,首先需要取牌值,思路和取花色一样的,就不贴代码了,取值之后,因为含有J,Q,K,A,我们需要特殊处理一下,我们把A替换为14,K替换为本文来源gaodaimacom搞#代%码@网-13,以此类推J为11,特殊处理之后得到的是字符型的值,我们还需要整型化,为了方便比较,还需要进行排序操作

一下只贴出部分代码,已经有了思路,相信你可以把代码补全!

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

经过以上操作,我们得到了玩家是手里的牌是否为同花及其牌值,且顺序是对应的


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python实战之德州扑克第二步-判断牌型

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址