用百行Python代码写一个关于德州扑克的类

德州扑克比较大小的go语言暴力实现 德州扑克的规则 项目实现了什么 5张牌的比较 7张牌的比较 7张牌+赖子的比较(最多只有一张赖子的情况) 项目的运行速度 5张牌,不算读取文件,压力测试下的速度 go test -bench=".*" -benchmem 7张牌的速度 7张加赖子的速度 我的项目结构 5张牌的实现方式 package fire import ( "encoding/json" "fmt" "io/ioutil" "time" ) // Poker 存放 文件中比较数据的结构体 type poker s 阅读详情

德州扑克是一款竞技类的扑克游戏,随着人类在各种竞技游戏被ai所碾压,我思考有着像棋类这种考验计算能力封闭式的游戏被电脑统治在所难免,德州扑克这种考验人性和心理的游戏在2017年也被ai攻克,本人是德州扑克的爱好者,虽然好奇ai源代码但也无从猜测,但是用python写一写德州扑克小游戏还是可以上手,以后学的多了可以考虑用py写一个简单策略进行游戏,话不多说看代码吧。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted bloc
import itertools
import random  #又给忘了随机生成一个列表的函数式什么了
class poker():#注意因为要从牌库里移除已经出现过得底牌,所以这个类智能当做一局来打,要实现多局的从用循环函数
	def __init__(self):
		self.style = ["黑桃","红心","草花","方块"]
		self.value = ["2","3","4","5","6","7","8","9","10","J","Q","K","A"]
		value_f = {
   
   }
		for i in range(13):
			value_f[self.value[i]] = i+2
		self.value_f = value_f
		d = {
   
   }
		for i in self.value:
			for j in self.style:
				x = i+j
				d[x] = {
   
   "value":i,"style":j}
		self.paiku = list(d)
		self.poker = d
		self.value_f = value_f 
	def dipai(self,n):
		d = {
   
   }
		for i in range(1,n+1):		
			l =[]
			j = 0
			for j in range(2):
				b = {
   
   }
				a = random.randint(0,len(self.paiku)-1)
				p = self.paiku[a]
				self.paiku.remove(p)
				l.append(p)
			d["player"+str(i)] = l
		return d
	def common_poker(self):
		l = []
		for i in range(5):
			a = random.randint(0,len(self.paiku)-1)
			p = self.paiku[a]
			self.paiku.remove(p)
			l.append(p)
		return l
	def paixing(self,s):
		#将七张牌按照大小排列,依次算出counts
		#s = self.dipai()[player] + self.common_poker()
		#s = ['2草花', '10黑桃', '8方块', 'J红心', '6黑桃', 'J黑桃', '2黑桃']
		#冒泡排序法,手写呀别怂,写不了菜鸡
		#开始写大小类型,高牌1,对子2,两对3,三条4,顺子5,同花6,葫芦7,四条8,同花顺9
		#判断任意已经排好序列的五张牌是否为顺子
		def get_v_c(s):
			value = []
			style = []
			for i in s:
				value.append(self.poker[i]["value"])
				style.append(self.poker[i]["style"])
			sort_v = sorted(value,key=lambda x:self.value_f[x])
			sort_v_f = list(map(lambda x:self.value_f[x],sort_v))  
			v_counts = []
			for i in sorted(set(sort_v_f)):
				counts = sort_v_f.count(i)
				v_counts.append(counts)
			return sort_v_f,sort_v,v_counts,style
		sort_v_f,sort_v,v_counts,style= get_v_c(s)
		def gaopai(sort_v_f,v_counts):
			l = [1]
			if len(v_counts) == 7:
				return l + sort_v_f[-5:]
			else:
				return False
		def yidui(sort_v_f,v_counts):
			if v_counts.count(2) == 1:
				l = [2]
				c = sorted(list(set(sort_v_f)))
				a = sort_v_f[v_counts.index(2)]
				if 2 in v_counts[-3:]:
					k = c[-4:]
					k.remove(a) #原来这样玩要加括号
					# k.remove(a)
					# k = k[::-1]
					return (l+[a]+k[::-1]) #extend和   +  有什么区别
				else:
					return (l+[a]+sort_v_f[-3:][::-1])
			else:
				return False
		def liangdui(sort_v_f,v_counts):
			l = [3]
			c = sorted(list(set(sort_v_f)))
			#print(c)
			if v_counts.count(2) == 2:
				x = c.copy()
				for i in range(len(v_counts)-1,-1,-1):
					if v_counts[i] == 2:
						a = c[i]
						x.remove(a)
						l.append(a)
				return l + [max(x)]
				#return (3,(l.append(v_counts[len(v_counts)-(v_counts[::-1]).index(1)])))
			elif v_counts.count(2) == 3:
				if v_counts.index(1)>1:
					x = c.copy()
					x.remove(c[0])
					b = c[v_counts.index(1)]
					x.remove(b)
					return l+x[::-1] +[b]
				else:
					return l + c[-1:-4:-1]
			else:	
				return False
		def santiao(sort_v_f,v_counts):
			l = [4]
			c = sorted(list(set(sort_v_f)))
			if 3 <
cocos2dx游戏源码之《德州扑克 德克萨斯扑克全称Texas Hold’em poker,中文简称德州扑克。它是一种玩家对玩家的公共牌游戏。一张台面至少2人,最多22人,一般是由2-10人参加。德州扑克一共有52张牌,没有王牌。每个玩家分两张牌作为“底牌”,五张由荷官陆续朝上发出的公共牌。开始的时候,每个玩家会有两张面朝下的底牌。经过所有押注圈后,若仍不能分出胜负,游戏会进入“摊牌”阶段,也就是让所剩的玩家亮出各自的底牌以较高下 阅读详情

相关推荐

利用python德州扑克游戏

利用python德州扑克游戏,仅采用python基础语法与基础数据结构,全部函数自编,全文无障碍阅读

qq_51444641的博客 1万+

基于python深度强化学习的德州扑克AI算法优化源码+项目说明+模型.zip

基于python深度强化学习的德州扑克AI算法优化源码+项目说明+模型

2023华为od机试 Python 实现【德州扑克

我们可以选择五张牌,它们的范围是:每张牌的大小在2~10之间、或者字母J、Q、K、A,牌花色为红桃、黑桃、梅花、方块四种花色之一。牌型2,四条:四张相同数字 + 单张,如红桃A黑桃A梅花A方块A + 黑桃K。牌型3,葫芦:三张相同数字 + 一对,如红桃5黑桃5梅花5 + 方块9梅花9。牌型1,同花顺:同一花色的顺子,如红桃2红桃3红桃4红桃5红桃6。牌型5,顺子:花色不一样的顺子,如红桃2黑桃3红桃4红桃5方块6。牌型4,同花:同一花色,如方块3方块7方块10方块J方块Q。牌型6,三条:三张相同+两张单。

wtswts1232的博客 440

基于深度强化学习的德州扑克AI算法优化python源码+项目说明+模型.zip

【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于深度强化学习的德州扑克AI算法优化python源码+项目说明+模型.zip 本论文题目为基于深度强化学习的德州扑克AI算法优化 结果储存在result.xlsx,以每个图的数据进行呈现,包括中期报告和论文的数据 本论文三个实验环境为: Limit leduc holdem poker(有限注德扑简化版): 文件夹为limit_leduc,代码的时候为了简化,使用的环境命名为NolimitLeducholdemEnv,但实际上是limitLeducholdemEnv Nolimit leduc holdem poker(无限注德扑简化版): 文件夹为nolimit_leduc_holdem3,使用环境为NolimitLeducholdemEnv(chips=10) Limit holdem poker(有限注德扑) 文件夹为limitholdem,使用环境为LimitholdemEnv 本论文所设计的agent位于"/实验环境/agents/DeepCFRagent3.py",是由DeepCFRagent改进来的agent,在实验中,我们与CFR,CFR+,MCCFR,DeepCFR进行对比,Limit leduc holdem poker和Nolimit leduc holdem poker使用exploitability进行评估(exploitability衡量算法与纳什均衡的距离),Limit holdem poker环境过大,使用与RandomAgent作战的reward作为评估指标 本论文工作量: 1.本论文所使用的agent,800+行 2.本论文复现出的CFR,CFR+,MCCFR,DeepCFR算法,CFR,CFR+,MCCFR,每个算法400行左右,DeepCFR为600行,以上算法都未开源 3.本文使用的环境,我们使用RLcard作为我们的底层,每个环境大约为500行左右 4.对算法的效果进行测试,主要为含有test的py文件,此部分大约为500行左右 ......

cocos2d-x php,quick-cocos2d-x-2.2.6-master 一款非常好的德州扑克学习代码!希望对广大 爱好者有帮助!谢谢! android 263万源代码下载- www.pu...

文件名称: quick-cocos2d-x-2.2.6-master下载 收藏√ [5 4 3 2 1]开发工具: Visual C++文件大小: 83368 KB上传时间: 2016-08-23下载次数: 0详细说明:一款非常好的德州扑克学习代码!希望对广大学习爱好者有帮助!谢谢!-Texas Hold ’ em poker文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评...

weixin_42355294的博客 326

web——德州扑克

web——德州扑克

qq_44645934的博客 1850

德州扑克计分小程序:AI驱动的架构设计与实现

本文介绍了一个基于AI的德州扑克计分系统设计方案。系统采用分层架构,包含表示层、业务逻辑层和数据层,使用Vue.js+Python+TensorFlow技术栈实现。核心模块包括牌型识别和胜率计算,其中牌型识别模块通过枚举算法精确判断牌型等级,胜率计算模块采用蒙特卡洛模拟方法估算获胜概率。系统设计注重模块化和可扩展性,为德州扑克游戏提供智能化的计分和决策支持。

技术引领业务创新 1368

德州扑克学习笔记20190801

这篇我们主要讲讲概率啊,期望啊,EV 啊什么的。 概率相信大家都懂,九年级数学课本第 25 章。 期望就是数学期望,自己百度,扫一眼就行了。 这篇文章的重头戏是 EV。 那什么是 EV 呢?说高级也不高级,说简单也不简单…… 看样子就像某个东西的缩对吧。告诉你吧,是 Expect Value (期望收益)。是不是很水很容易理解啊。算也很好算。如果 P1P_1P1​ 代表赢的概率, w1w_1w1...

YangHao5的博客 996

Linux中web服务之Nginx最全最易懂学习(附图文结合)

Nginx(发音为 "Engine-X")是一个高性能的 web 服务器、反向代理服务器和负载均衡器。它最初是为了应对高流量的网站而设计的,特别适合处理大量并发连接。下面是简单易懂的介绍:1. Web 服务器Nginx 可以用作 web 服务器,也就是它负责接收用户的 HTTP 请求并返回网页内容。比如,当你在浏览器中输入网址(如 `www.example.com`)时,浏览器会发送 HTTP 请求给服务器,服务器通过 Nginx 返回网页。

成为一个内心平静的人,要多久 1996

【ZooKeeper】上班摸鱼时间——一文了解 ZAB 协议

本文将会围绕《ZooKeeper’s atomic broadcast protocol: Theory and practice》这篇论文讲解 ZooKeeper 和 ZAB 的精髓之处。 大家好,我是周周,前几周开组会时被点名回答一些 ZooKeeper 相关问题,竟然一问三不知,组长直呼当初被我帅气外表所骗,稀里糊涂的招了进来。 于是下来后对这个在我手发挥极其重要作用的这项基建产生了浓厚兴趣,所以决定痛改前非,先从 ZAB 出发,开启一系列的 ZooKeeper 进阶之旅。

程序猿周周的博客 2389

js内存泄露学习(转)

http://blog.csdn.net/kaitiren/article/details/19974269内存泄露不错的帖子,感谢分享 Google Chrome浏览器提供了非常强大的JS调试工具,Heap Profiling便是其中一个。Heap Profiling可以记录当前的堆内存(heap)快照,并生成对象的描述文件,该描述文件给出了当时JS运行所用到的所有对象,以及这些...

weixin_30475039的博客 1381

2023最新华为OD机试,独家整理总结上岸技巧,答读者问华为OD 华为OD机试备考攻略

华为OD员工并非华为公司员工,而是由外包公司德科派驻到华为工作。德科是OD员工的雇主,负责签订合同和管理劳务关系,并发放工资和福利。华为推行同工同酬,所以OD的薪资与正式员工差不多。TIPS:每年都有OD员工转为正式员工。华为OD的入职考核相当严格,特别是在信息安全和日常考核方面,行业内也有很多评论。试用期转正相对容易,主要看个人是否适应公司文化和业务能力是否达标。虽然公司提倡狼性文化,但试用期不通过的情况比较少。入职后还会进行背景调查,应该实事求是,不要犯傻。

m0_63430863的博客 1292

德州扑克源码java-poker:德州扑克游戏H5+Golang

德州扑克源码 java webpoker a poker game use phaser framework

德州扑克源码java-holdem:OpenAIGymNoLimit强化学习的德州扑克环境

德州扑克源码java Holdem :warning: 这是一个实验性的API,肯定会包含错误,但这就是您在这里的原因! pip install holdem Afaik,这是第一个Python的无限制德州扑克*(NLTH)环境。 这是建立一个同步的Gym环境的实验,该环境可以支持任意数量的玩家,同时也吸引了希望学习如何“解决” NLTH的公众。 * Python 3支持任意长度的整数 :money_with_wings: 目前,这项工作仍在进行中,但我认为API已经足够成熟,可以进行一些初步的实验。 和我一起在多主体健身房环境中取得一些有趣的进展。 用法 目前文档有限。 我将尽力使这件事更容易理解。 env = holdem.TexasHoldemEnv(n_seats, max_limit=1e9, debug=False) 根据以下参数创建健身房环境表示形式的NLTH表: n_seats当前表的可用玩家数。 最初没有任何玩家分配到桌子。 您必须调用env.add_player(seat_id, ...)来填充表。 max_limit -max_limit用于定义gym.spaces API。 它实际上并没有确定任何NLT

德州扑克_源码

德州扑克网页版,里面有搭建教程,轻松上手,大家可以轻松搭建

Python实现德州扑克游戏

这是使用python完成的德州扑克游戏。包括了洗牌,发牌,验证牌型。 # 德州扑克 # 设计一个程序: # (1)洗牌功能 # (2)发牌功能 # (3)验证手牌 # 皇家同花顺(同一个花色五张连牌 A K Q J 10) # 同花顺(同一个花色 7 8 9 10 J) # 四条 (x x x x + y) # 满堂红(x x x + y y) # 同花 (5张同一花色) #

weixin_52066876的博客 3168

python实践报告——通过python程序设计实现德州扑克

文章目录前言一、项目概述二、项目实现1.引入库2.实现卡牌3.实现扑克4.实现玩家总结 前言 通过python设计程序实现德州扑克 一、项目概述 1.1项目目标和主要内容 设计程序实现德州扑克,共52张手牌,包含四种花色(红心,黑心,方块,梅花),每种花色共13张(A,2,3,4,5,6,7,8,9,10,J, Q, K)。 1.2项目的主要功能 1)洗牌功能 2)发牌功能 3)验证手牌 皇家同花顺(同一个花色五张连牌 A K Q J 10) 同花顺(同一个花色7 8 9 10 J) 四条(x..

qq_51799015的博客 2117

Python多人游戏德州扑克TEXAS

socket通信,使用socket进行客户端与服务端的通信,但由于本人对于socket编程并不是很熟悉,所以socket通信部分的代码得很烂,对于数据传输用的是似于json结构的字符串,在传输后再将字符串转为json结构体进行解析。本项目使用tkinter构建客户端界面,用户可以在客户端的界面上进行游戏操作,由于tkinter是python自带的库,因此不需要额外导入。使用多线程编程,同时监控服务端和客户端的多个传输信息的情况。id: 玩家id,默认为客户端的ip和端口号。act: 玩家当前角色。

moyuweiqing的博客 1179
下一篇: 用py写一个关于斗牛各种牌型出现概率的程序
weixin_42351283
博客等级 码龄8年 2粉丝 2原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值