Python实现24点游戏
来源:互联网 发布:五五开德云色事件知乎 编辑:程序博客网 时间:2024/05/21 11:21
欢迎访问我的网站:omegaxyz.com
24点游戏是指随机选取4张扑克牌(不包括大小王),
然后通过四则运算来构造表达式,如果表达式的值恰好等于24就赢一次。
下面的代码定义了一个函数用来测试随机给定的4个数是否符合24点游戏规则,
如果符合就输出所有可能的表达式。
这里利用生成的随机数字进行测试:
from random import randintfrom itertools import permutations#4个数字和2个运算符可能组成的表达式形式exps = ('((%s %s %s) %s %s) %s %s', '(%s %s %s) %s (%s %s %s)', '(%s %s (%s %s %s)) %s %s', '%s %s ((%s %s %s) %s %s)', '%s %s (%s %s (%s %s %s))')ops = r'+-*/'def test24(v): result = [] #Python允许函数的嵌套定义 #这个函数对字符串表达式求值并验证是否等于24 def check(exp): try: #有可能会出现除0异常,所以放到异常处理结构中 return int(eval(exp)) == 24 except: return False #全排列,枚举4个数的所有可能顺序 for a in permutations(v): #查找4个数的当前排列能实现24的表达式 t = [exp % (a[0], op1, a[1], op2, a[2], op3, a[3]) for op1 in ops for op2 in ops for op3 in ops for exp in exps if check(exp %(a[0], op1, a[1], op2, a[2], op3, a[3]))] if t: result.append(t) return resultfor i in range(20): print('='*20) #生成随机数字进行测试 lst = [randint(1, 14) for j in range(4)] r = test24(lst) if r: for j in range(len(r)): print(r[j]) else: print('No answer for ', lst)
阅读全文
0 0
- Python实现24点游戏
- 软件工程与开发实践课程设计 24点游戏 Python实现
- python-24点智取游戏
- C++实现24点游戏
- C++实现24点游戏
- 凑24点游戏实现
- python版本的24点游戏算法
- 24 点 Python 的实现
- 24点游戏 c语言的实现
- 经典游戏,计算24点,简单实现
- 24点游戏的回溯实现
- C语言实现24点游戏
- 扑克牌24点游戏JAVA实现
- Java实现 扑克24点游戏src
- 24点游戏的算法实现
- C++实现24点游戏算法
- Java实现24点纸牌游戏
- 实现24点游戏-穷举法
- MySQL记录插入与查找
- Android WEBVIEW中调用<a href>的问题!!!不是js的方法
- Intellij激活
- Python 3爬虫网易云(九)—— 获取一个歌手的热门50首歌词
- java多线程
- Python实现24点游戏
- h5+ 时光轴
- Maven使用deploy上传jar包到远程库
- Linux下svn库搭建
- 复选框的全选和反选
- 从事信息安全行业的心得
- 程序中的context(上下文)
- web——媒体查询
- spring boot 及 redis 实现分布式session 实践笔记