python:24点游戏
24点游戏是指随机选取4张扑克牌(不包括大小王),然后通过四则运算来构造表达式,如果表达式的值恰好等于24就赢一次。编写代码测试随机给定的4个数是否符合24点游戏。
用户输入4个1-13之间的整数,程序自动搜索+-*/全部可能计算出24的组合及数目。如果得不到结果,则提示失败。
废话不多说,直接上代码
中缀运算符改后缀运输符
有点乱
def get_c(num):if num == 0:return '+'elif num == 1:return '-'elif num == 2:return '*'else:return '/'print("请输入4个数字")g24 = []
for i in range(4):g24.append(input(""))a = b = c = '+'flag = Falsestack1 = []
stack2 = []for i in range(0, 4):for j in range(0, 4):for q in range(0, 4):a = get_c(i)b = get_c(j)c = get_c(q)res = g24[0] + a + g24[1] + b + g24[2] + c + g24[3]#将中缀表达式转化为后缀表达式n = len(res)for w in range(0, n):if res[w].isdigit():#数字只可能是两位数或者一位数if(w + 1 < n and res[w + 1].isdigit()):r = res[w] + res[w + 1]stack1.append(eval(r))elif w != 0 and res[w - 1].isdigit():continueelse:stack1.append(eval(res[w]))else:#乘除的优先级最大直接压入栈内if res[w] == '*' or res[w] == '/':stack2.append(res[w])elif res[w] == '+' or res[w] == '-':if len(stack2) == 0:stack2.append(res[w])elif stack2[len(stack2) - 1] != '*' and stack2[len(stack2) - 1] != '/':stack2.append(res[w])else:op = stack2[len(stack2) - 1]while len(stack2) != 0 and (op == '*' or op == '/'):op = stack2.pop()num1 = stack1.pop()num2 = stack1.pop()if(op == '*'):stack1.append(num1 * num2)else:if num1 == 0:stack1.append(0)else:stack1.append(num2 // num1)stack2.append(res[w])while len(stack2) > 0:op = stack2.pop()num1 = stack1.pop()num2 = stack1.pop()if op == '+':stack1.append(num1 + num2)elif op == '-':stack1.append(num2 - num1)elif op == '*':stack1.append(num1 * num2)else:if num1 == 0:stack1.append(0)else:stack1.append(num2 // num1)ans = stack1.pop()if ans == 24:print(res, end = '=')print(24)flag = True
if flag:print("你赢了!")
else:print("你输了!")
以后可能会优化一下吧
python:24点游戏相关推荐
- python游戏开发步骤_详解Python GUI版24点游戏制作过程
本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com. 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可用于防止老年痴呆.本项目模拟传统扑克24 ...
- 用python代替人脑运算24点游戏
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:老方玩编程 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...
- 24点游戏python编程代码和运行结果_编程实现24点游戏,我发现自己总是输是有原因的...
你有玩过24点游戏吗? 两个人轮流从一副扑克牌(不包含鬼牌)中抽牌至有四张手牌为止,利用四张牌上的数字通过加减乘除运算先得出24点的玩家获胜. 一.24点游戏有解的概率 细想一下24点的规则可以发现, ...
- 详解Python GUI版24点游戏制作过程
本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com. 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可用于防止老年痴呆.本项目模拟传统扑克24 ...
- Python版24点游戏
24点游戏是指随机选取4张扑克牌(不包括大小王),然后通过四则运算来构造表达式,如果表达式的值恰好等于24就赢一次.下面的代码定义了一个函数用来测试随机给定的4个数是否符合24点游戏规则,如果符合就输 ...
- 24点游戏的递归解法和Python实现
24点游戏的递归解法和Python实现 目录 24点游戏的递归解法和Python实现 什么是24点游戏 递归思路 递归 24点问题的递归思路 Python代码实现 四则运算下无解的组合 总结 什么是2 ...
- python编写24点游戏
1.题目要求 24点游戏是经典的纸牌益智游戏. 常见游戏规则: 从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决2 ...
- 基于Python制作的24点游戏生成器
资源下载地址:https://download.csdn.net/download/sheziqiong/85796930 资源下载地址:https://download.csdn.net/downl ...
- 24点游戏python版
24点游戏python版 问题描述与规则 24点游戏是经典的纸牌益智游戏.常见游戏规则:从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表 ...
- 【Python游戏】Python各大游戏合集(3):飞翔的小鸟、俄罗斯方块、24点小游戏、吃豆豆小游、扫雷 | 附带源码
相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加Pyth ...
最新文章
- leetcode 765. 情侣牵手(并查集)
- VS2010项目配置详解
- matlab meshgrid函数_从零开始的matlab学习笔记——(28)立体图切面与三视图
- windwos cakephp mysql apache_配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
- Python笔记-Flask框架Get和Post参数相关
- 使用@Embed嵌入元素
- Laravel用post提交表单常见的两个错误
- 利用集合对数据进行去重操作
- 彻底解决 Jenkins Slaver 节点无法执行 Git-LFS 命令
- 关于百度地图js api的getCurrentPosition定位不准确的解决方法
- Weex组件库-Dialog
- Trapcode Particular 4 for Mac(AE三维粒子插件)附序列号破解版
- C++中set用法详解
- c语言:输入三角形的边长求面积
- linux 删除变为空格
- fastapi、flask和tornado对获取请求IP的探索
- 八个超赞的两轮平衡小车设计,小白最爱
- windowsUbuntu双系统修改启动菜单引导顺序
- CAN通讯-使用Python收发CAN数据保姆级教程(包含完整代码)
- 【vue warning】avoid mutating a prop directly