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

德州扑克是一款竞技类的扑克游戏,随着人类在各种竞技游戏被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(</
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值