自用组帧工具

#coding:utf-8

BUTTON = ‘button‘ # 庄稼?????

L_BLIND = ‘little_blind‘ # 小盲注

B_BLIND = ‘big_blind‘ # 小盲注

SEAT = ‘seat‘

HOLD = ‘hold‘   # 手牌

ASK  = ‘ask‘    # ?????

FIRST= ‘first‘  # 第一次发三张牌 ?????

TURN = ‘turn‘   # 转牌

RIVER= ‘river‘  # 河牌

ACT  = ‘act‘

# ????

HEI  = ‘hei‘

HONG = ‘hong‘

MEI  = ‘mei‘

FANG = ‘fang‘

LITTLE_BLIND_MONEY = 500

START_MONEY = 8000

START_BET = 2000

input_info = [

(SEAT, 2, 0), # 共2人,我是第0位,0位表示庄稼

(HOLD, [(HEI, ‘A‘), (HEI, ‘K‘)]),

(ACT, [0,]), # -1=放弃, 0=让(或跟), n=加n注

(FIRST, [(HEI, ‘Q‘), (HEI, ‘J‘), (HEI, ‘10‘)]),

(ACT, [0, 1]),

(TURN, [(HONG, ‘2‘), ]),

(ACT, [0, 1]),

(RIVER, [(FANG, ‘3‘), ]),

(ACT, [0, 1]),

]

def analyse_SEAT(one_info):

person_cnt = one_info[1]

my_seat = one_info[2]

core = ‘‘

for i in range(person_cnt):

if my_seat == i:

pid = 3001

else:

pid = 9001+i

if i == 0:

extra_info = BUTTON

elif i == 1:

extra_info = L_BLIND

elif i == 2:

extra_info = B_BLIND

else:

extra_info = ‘‘

this_line = ‘{0} {1}: {2} {3} \n‘.format(extra_info, pid, START_BET, START_MONEY) # ??????

core += this_line

return SEAT+‘/ \n‘+ core +‘/‘+SEAT + ‘ \n‘

def analyse_HOLD(one_info):

‘‘‘

hold\

HEI 10

MEI 9

\hold

‘‘‘

body_info = one_info[1]

return ‘‘‘{0}\

{1} {2}

{3} {4}

\{0} ‘‘‘.format(HOLD,

body_info[0][0], body_info[0][1],

body_info[1][0], body_info[1][1],

)

def analyse_FIRST(one_info):

body_info = one_info[1]

return ‘‘‘{0}\

{1} {2}

{3} {4}

{5} {6}

\{0} ‘‘‘.format(FIRST,

body_info[0][0], body_info[0][1],

body_info[1][0], body_info[1][1],

body_info[2][0], body_info[2][1],

)

def analyse_TURN(one_info):

body_info = one_info[1]

return ‘‘‘{0}\

{1} {2}

\{0} ‘‘‘.format(TURN,

body_info[0][0], body_info[0][1],

)

def analyse_RIVER(one_info):

body_info = one_info[1]

return ‘‘‘{0}\

{1} {2}

\{0} ‘‘‘.format(RIVER,

body_info[0][0], body_info[0][1],

)

# ?????

def get_pid(i):

return 9001 + i

def analyse_ACT(one_info):

‘‘‘

ASK\

9001: 0 8000 500 call

total: xxxx

\ASK

‘‘‘

core = ‘‘

for i,itm in enumerate(one_info[1]):

if 0 == itm:

extra_info = ‘check‘

pay = LITTLE_BLIND_MONEY # ????

elif -1 == itm: # ???? 有人弃牌会引发组装错误

extra_info = ‘fold‘

pay = 0

else:

extra_info = ‘raise‘

pay = LITTLE_BLIND_MONEY*itm

pid = get_pid(i)

cur_bet = 500 # ???? 需要动态获取

cur_money = 8000

this_line = ‘{0}: {1} {2} {3} {4} \n‘.format(

pid, cur_bet, cur_money, pay, extra_info)

core += this_line

total_pot = 1000 # ?????

rtn = ‘‘‘

{0}\

{1}total: {2}

\{0}

‘‘‘.format(ASK, core, total_pot) # ????????

return rtn

def analyse_one(one_info):

type = one_info[0]

if type == SEAT:

rtn = analyse_SEAT(one_info)

elif type == HOLD:

rtn = analyse_HOLD(one_info)

elif type == FIRST:

rtn = analyse_FIRST(one_info)

elif type == TURN:

rtn = analyse_TURN(one_info)

elif type == RIVER:

rtn = analyse_RIVER(one_info)

elif type == ACT:

rtn = analyse_ACT(one_info)

else:

print ‘type error‘

return rtn

def analyse(all_info):

rtn = ‘‘

for itm in all_info:

rtn += analyse_one(itm)

return rtn

print analyse(input_info)

时间: 2024-10-04 23:21:57

自用组帧工具的相关文章

不支持正在使用的 .Net 组帧模式。有关详细信息,请参阅服务器日志--解决方案是否

问题在于 NetTcpBinding 服务端和客户端配置不一致. 至少  客户端和服务端:安全性.是否启用可靠会话以及传输方式必须一致 主要是传输方式导致 "不支持正在使用的 .Net 组帧模式". 安全性和是否启用可靠会话不一致 导致错误 " 套接字连接已中止.这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的.本地套接字超时是“00:01:59.9839991”. ---> System.Net.Sockets.SocketExceptio

tcpdump截帧工具使用

一.tcpdump介绍 ? tcpdump是Linux下功能强大的截帧工具,相当于windows下的wireshark一下,只是操作方式是命令行的,需要熟悉Linux命令行操作. ? 常用的Linux发行版基本上都已经自带了tcpdump,如果没有可以tcpdump官网下载安装,官网只提供了源代码,下载后需要先编译.具体编译方式这里不做介绍. 二.tcpdump常用参数介绍 下面列出了tcpdump的常用参数: -a 将网络地址和广播地址转换成名字 -A 以ASCⅡ 格式显示截取到的数据帧 -c

java获取视频第一帧工具类

java获取视频文件第一帧,为了防止黑画面,此例取第五帧,本例子采用maven形式 1. pom.xml 添加引用jar包 jdk采用1.8,日志自行添加即可,这里使用的是log4j2 <!-- log4j2 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.

3dmax使用K帧工具创建一个行走动作

第一步,创建一个biped骨骼. 这个就不截图了,因为基本都会. 记住一点,先改变了关键点再去修改,不然修改的是前一个关键帧的动作. 第二步,开启自动关键帧,然后给初始位置双脚添加踩踏关键点.设置关键点后,角色就只能在平面上进行移动. 设置踩踏关键帧后,时间轴上面的会变成黄色. 第三步:然后开始在第15帧的时候设置右脚的动作,变成踩踏关键帧的时候,左脚就设置为自由关键帧.然后移动角色中心向前移动. 第四步:然后再20帧的时候,右脚为只有关键帧,左脚为踩踏关键帧,移动角色向前移动就可以实现走动了.

windows_learn 002 用户管理和组策略

内容总览 域用户与组的管理 用户和组 用户登录名 添加用户工具 在活动目录中使用组 为何使用组? 全局组 Global Group Rules 域本地组 Domain Local Group Rules 通用组 Universal Group Rules 在域中使用组的策略 使用组的方针 组策略规划及部署 组策略规划及创建 组策略对象的工具 域用户与组的管理 概述 管理域用户账户 添加多个用户账户 域组账户 组的使用准则 用户和组 每个用户账号创建一个唯一的登录名 使用批处理创建多个用户 将用户

组策略

注册表是Windows系统中保存系统软件和应用软件配置的数据库,而 随着Windows功能越来越丰富,注册表里的配置项目也越来越多,很多配置都可以自定义设置,但这些配置分布在注册表的各个角落,如果是手工配置,可以想像是多么困难和烦杂.而组策略则将系统重要的配置功能汇集成各种配置模块,供用户直接使用,从而达到方便管理计算机的目的. 其实简单地说,组策略设置就是在修改注册表中的配置.当然,组策略使用了更完善的管理组织方法,可以对各种对象中的设置进行管理和配置,远比手工修改注册表方便.灵活,功能也更加

100+ 超全的web开发工具和资源

转载出处:https://xituqu.com/170.html 作为Web开发者,这是好的时代,也是坏的时代.Web开发技术也在不断变化.虽然很令人兴奋,但是这也意味着Web开发人员需要要积极主动的学习新技术和新的编程语言,并愿意和渴望接受新的挑战,以适应变化.新的挑战可能会包括一些开发上的要求,如利用适应现有的框架来满足业务需求.测试一个网站,能从中知道出了哪些技术上的问题,并且我们针对这些问题进行优化和消除.便于后端的开发进程加快和测试.所以我们列出了完整的web开发所需要的工具和资源,助

超全的web开发工具和资源

作为Web开发者,这是好的时代,也是坏的时代.Web开发技术也在不断变化.虽然很令人兴奋,但是这也意味着Web开发人员需要要积极主动的学习新技术和新的编程语言,并愿意和渴望接受新的挑战,以适应变化.新的挑战可能会包括一些开发上的要求,如利用适应现有的框架来满足业务需求.测试一个网站,能从中知道出了哪些技术上的问题,并且我们针对这些问题进行优化和消除.便于后端的开发进程加快和测试.所以我们列出了完整的web开发所需要的工具和资源,助力开发者提高开发效率!学不止步,让我们努力成为一个优秀的开发者!

几款免费的项目管理工具(不是所有都免费,但是有免费版)

1.Git https://git-scm.com/ Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 2.Tortoise SVN https://tortoisesvn.net/ TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录. 3.Gitlab https://about.gitlab.com/gitlab-com/ GitLab是一个利用 Ruby On Rails开发的开源应用程序,实现