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点游戏相关推荐

  1. python游戏开发步骤_详解Python GUI版24点游戏制作过程

    本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com. 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可用于防止老年痴呆.本项目模拟传统扑克24 ...

  2. 用python代替人脑运算24点游戏

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:老方玩编程 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  3. 24点游戏python编程代码和运行结果_编程实现24点游戏,我发现自己总是输是有原因的...

    你有玩过24点游戏吗? 两个人轮流从一副扑克牌(不包含鬼牌)中抽牌至有四张手牌为止,利用四张牌上的数字通过加减乘除运算先得出24点的玩家获胜. 一.24点游戏有解的概率 细想一下24点的规则可以发现, ...

  4. 详解Python GUI版24点游戏制作过程

    本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com. 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可用于防止老年痴呆.本项目模拟传统扑克24 ...

  5. Python版24点游戏

    24点游戏是指随机选取4张扑克牌(不包括大小王),然后通过四则运算来构造表达式,如果表达式的值恰好等于24就赢一次.下面的代码定义了一个函数用来测试随机给定的4个数是否符合24点游戏规则,如果符合就输 ...

  6. 24点游戏的递归解法和Python实现

    24点游戏的递归解法和Python实现 目录 24点游戏的递归解法和Python实现 什么是24点游戏 递归思路 递归 24点问题的递归思路 Python代码实现 四则运算下无解的组合 总结 什么是2 ...

  7. python编写24点游戏

    1.题目要求 24点游戏是经典的纸牌益智游戏. 常见游戏规则: 从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决2 ...

  8. 基于Python制作的24点游戏生成器

    资源下载地址:https://download.csdn.net/download/sheziqiong/85796930 资源下载地址:https://download.csdn.net/downl ...

  9. 24点游戏python版

    24点游戏python版 问题描述与规则 24点游戏是经典的纸牌益智游戏.常见游戏规则:从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表 ...

  10. 【Python游戏】Python各大游戏合集(3):飞翔的小鸟、俄罗斯方块、24点小游戏、吃豆豆小游、扫雷 | 附带源码

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加Pyth ...

最新文章

  1. leetcode 765. 情侣牵手(并查集)
  2. VS2010项目配置详解
  3. matlab meshgrid函数_从零开始的matlab学习笔记——(28)立体图切面与三视图
  4. windwos cakephp mysql apache_配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
  5. Python笔记-Flask框架Get和Post参数相关
  6. 使用@Embed嵌入元素
  7. Laravel用post提交表单常见的两个错误
  8. 利用集合对数据进行去重操作
  9. 彻底解决 Jenkins Slaver 节点无法执行 Git-LFS 命令
  10. 关于百度地图js api的getCurrentPosition定位不准确的解决方法
  11. Weex组件库-Dialog
  12. Trapcode Particular 4 for Mac(AE三维粒子插件)附序列号破解版
  13. C++中set用法详解
  14. c语言:输入三角形的边长求面积
  15. linux 删除变为空格
  16. fastapi、flask和tornado对获取请求IP的探索
  17. 八个超赞的两轮平衡小车设计,小白最爱
  18. windowsUbuntu双系统修改启动菜单引导顺序
  19. CAN通讯-使用Python收发CAN数据保姆级教程(包含完整代码)
  20. 【vue warning】avoid mutating a prop directly

热门文章

  1. 三级等保 关闭111端口
  2. 【基础知识】8、加州房价预测项目精细解释
  3. C# 地理信息系统GIS开源软件
  4. 第15课 模块与包
  5. 比对软件Blast,Blast+,Diamond如何选
  6. windows使用批处理bat控制打印机自动打印测试页(可设置定时自动打印)
  7. 最短路径算法|Dijkstra‘s Algorithm
  8. POJ 2706 Connect
  9. ffmpeg的安装以及transform360插件的安装
  10. 用python画一条虚线_Python3 tkinter基础 Canvas create_line 画实线与虚线