Python版24点游戏
24点游戏是指随机选取4张扑克牌(不包括大小王),然后通过四则运算来构造表达式,如果表达式的值恰好等于24就赢一次。下面的代码定义了一个函数用来测试随机给定的4个数是否符合24点游戏规则,如果符合就输出所有可能的表达式。
from random import randint
from 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 result
for i in range(20):
print('='*20)
#生成随机数字进行测试
lst = [randint(1, 14) for j in range(4)]
r = test24(lst)
if r:
print(r)
else:
print('No answer for ', lst)
Python版24点游戏相关推荐
- Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk
Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk 程序依赖:pygame2.0.1, pymunk5.5.0 直接运行main.py 完整代码下载地址:Python版经典小游戏 ...
- Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式
Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式. 娱乐模式下,僵尸会头顶不同的汉字,此时屏幕会提示要消灭的汉字,移动豌豆消灭对应汉字的僵尸,如果攻击非提示汉 ...
- Python版见缝插针小游戏源代码,球球旋转大作战源程序
见缝插针游戏是一款非常考验玩家手眼协调能力的休闲益智虐心虐脑小游戏,玩法很简单,但要过关却很有挑战性哟! 主要是将一系列的小球,插入到旋转的摩天轮转盘当中,插入过程中不能碰到旋转的摩天轮上的其他小球, ...
- python游戏开发步骤_详解Python GUI版24点游戏制作过程
本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com. 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可用于防止老年痴呆.本项目模拟传统扑克24 ...
- 详解Python GUI版24点游戏制作过程
本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com. 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可用于防止老年痴呆.本项目模拟传统扑克24 ...
- python编写24点游戏
1.题目要求 24点游戏是经典的纸牌益智游戏. 常见游戏规则: 从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决2 ...
- python_用python计算24点游戏
24点的游戏大家都玩过,这次我们用python来算出四张牌的计算24的方法 def calculates(number, n, result):if n == 1:if number[0] == re ...
- python编写篮球_自制python版篮球经理游戏(1)—准备
今天突发奇想,打算做一个单击模拟版的篮球经理游戏,主要功能包括随机组队.抽卡.更换阵容和模拟比赛.具体的等想到了再往里添加,目前设计的游戏流程是这样的: 今天就先来完成准备工作. 尽然是模拟抽卡的游戏 ...
- Python版猜数游戏
之前发过一次这个代码,后来发现有一点小问题,漏掉了一个语句,但是当时没有开启留言功能所以无法说明和纠正,怕误导大家,只好再重发一次,顺便又加了点小功能,抱歉抱歉! from random import ...
最新文章
- 手机壳释放致癌物质“苯”吗?专家:确实会
- 转换Word文档为PDF文件
- 20130327 jQuery easyUI
- 服务器手工修改虚拟内存,服务器修改虚拟内存
- oracle数据库的基本错误,Oracle新手最常碰到错误及解决方案
- 001.Parted工具使用
- 特殊方法,类之间的关系,分页
- 【2018.5.19】模拟赛之三-ssl2434 取数【搜索,卡常或记忆化搜索】
- 基于JAVA+SpringMVC+Mybatis+MYSQL的旅游管理系统
- 程序员的修炼之道:从小工到专家(一)
- SQL Server 2008 R2 里迁移系统数据库的方法
- yum离线安装rpm包
- git不小心删除文件后,如何获取?
- 键盘可以实现向计算机输入数据判断,计算机应用基础_学习指南.docx
- Day 256/300 前端如何启动PHP后端项目
- 150行Python代码模拟太阳系行星运转
- 解决Attribute 'transaction-manager' is not allowed to appear
- 机器学习概要(MACHINE LEARNING SUMMARY)
- 如何查看服务器内存信息,如何查看服务器内存信息
- 改编Echarts 日历图
热门文章
- phpcms9.6 ueditor_Phpcms v9深度整合百度编辑器Ueditor
- java抽象机制_Java很好学:接口+抽象类+事件监听机制
- .idea文件夹是做什么的_推荐 33 个 IDEA 最牛配置,让你效率提高10倍!
- oracle 导入数据时主键丢失,Oracle 插入数据 返回主键
- 现代化蔬菜大棚采用什么和计算机自动控制,温室大棚自动控制系统存在的意义以及未来的发展...
- php redis support,ThinkPHP5报错php not support: redis以及Redis的使用
- 前端date format_前端面试-手撕代码篇
- 不会部署并调试SpringBoot源码?一看必会IDEA操作
- 采用Spring管理Bean和依赖注入
- c语言超长整数加法计算,两个超长正整数的加法