该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

24点纸牌游戏的开发

24点是一种老少咸宜的游戏,它的具体玩法如下:

给玩家4张牌,每张牌的面值在1~13之间,允许其中有数值相同的牌。采用加、减、乘、除四则运算,允许中间运算存在小数,并且可以使用括号,但每张牌只能使用一次,尝试构造一个表达式,使其运算结果为24。

1)请你根据上述游戏规则构造一个玩24点游戏的算法,编程实现。要求如下:

输入:n1, n2, n3, n4

输出:若能得到运算结果为24,则输出一个对应的运算表达式。

如:输入:11,8,3,5

输出:(11-8)*(3+5)=24

提示:

算法的设计不唯一,穷举法是最为基本的解法,分治法则会获得比较高一些的效率,请你仔细思考,设计出算法实现该问题并画出算法的流程图。

2)请为你的24点纸牌游戏开发出一个界面

例如:

提示:

1. 你可以百度搜索一下互联网上类似小软件的开发,试用一下,确定一个界面风格。

2. 软件主要完成的功能需要以下几个:

1)提供一个功能能进行随机发牌4张(用纸牌的形状或按钮的形状均可)

2)提供功能供用户输入关于这4张牌的表达式,并进行计算,判断结果的正确与否

3)能提供给用户正确答案

实验指导:

提示1:以下给出了穷举法解24点的代码框架,但很显然这种解法并不是最好的求解方法,你还可以设计其它的算法来解决该问题。

def cal(a,b,op): if op==0:return(a+b) if op==1:return(a-b) if op==2:return(a*b) if op==3: if(b==0.0): return(999.0) else:return(int(a/b)) def D24(v0,v1,v2,v3): op=['+','-','*','/'] v=[v0,v1,v2,v3] count=0 #四重循环开始穷举四个数字的位置: 4!=24 种 #三重循环开始穷举三个运算符: 4X4X4=64 种 #未用循环,直接穷举三个运算符的优先级: 3!-1=5种- t1=t2=t3=0 #第1种情况 ((a。b)。c)。d 开始计算: t1=cal(v[i1],v[i2],f1) t2=cal(t1,v[i3],f2) t3=cal(t2,v[i4],f3) if t3==24: print(v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4]) count+=1 #第2种情况 (a。b)。(c。d) 开始计算: #第3种情况 (a。(b。c))。d 开始计算: #第4种情况 a。((b。c)。d ) 开始计算: #第5种情况 a。(b。(c。d)) 开始计算: #穷举结束:共 24*64*5=7680 种表达式 --------------------------- if (count==0): print("can not calculate 24.",v0,v1,v2,v3); else: print("has several ways to calculate",count) v0=int(input("Pls input the 1st number:"))v1=int(input("Pls input the 2nd number:"))v2=int(input("Pls input the 3rd number:"))v3=int(input("Pls input the 4th number:"))D24(v0,v1,v2,v3)

提示2:界面设计可参考GUI相关知识进行,用到的控件包括:Button,Entry,Label等。注意:内置函数eval( )可以完成把一个字符串作为参数并返回它用为一个Python表达式的结果,例如:

>>>eval("2+3*4-5")

输出结果为:

9

以上函数可能帮助到你获取用户在Entry中输入表达式的值

另外,随机数的生成请参考Python的random模块

大计基实验太无情了

二十四点游戏python_[求助]关于二十四点游戏python相关推荐

  1. 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星 ...

  2. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计 公告板 Billboard 技术

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  3. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计:公告板(Billboard)技术...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨)   微博:@浅墨_毛星云邮箱: happylifemxy@163.com I'm back~,这段时间大家久等了~ ...

  4. 【Visual C++】游戏开发五十七 浅墨DirectX教程二十四 打造游戏GUI界面(二)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/16922703 作者:毛星 ...

  5. 【Visual C++】游戏开发五十五 浅墨DirectX教程二十二 水乳交融的美学:alpha混合技术

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/15026917 作者:毛星 ...

  6. Java游戏服务器开发之二十--xml配置文件

    Java游戏服务器开发之二十--xml配置文件     游戏中使用的配置文件很多     像游戏中的关卡,英雄等级,装备之类都是使用配置文件(xml等)     比如有一个装备,配置表中有一条记录,数 ...

  7. 鸟哥的Linux私房菜(服务器)- 第十六章、文件服务器之二: SAMBA 服务器

    第十六章.文件服务器之二: SAMBA 服务器 最近更新日期:2011/07/29 如果想要共享档案,在 Linux 对 Linux 的环境下,最简单的方法就是透过 NIS 这玩意儿了!至于 Wind ...

  8. 单机游戏制作系列之二——基本框架

    单机游戏制作系列之二--基本框架 笔者个人的想法,是打算将这个系列的文章写成通用性的,不局限于某一种语言,也不局限于某一种引擎,但是水平有限,预计是达不到这个效果.以下仅以C++来举例,如果其他的语言 ...

  9. Java游戏服务器开发之二--导航帖

    Java游戏服务器开发之三--日志         Java游戏服务器开发之四--通讯框架netty Java游戏服务器开发之五--使用工厂模式生成netty Java游戏服务器开发之六--整合spr ...

最新文章

  1. 附录1:python记事本
  2. 查看mysql整个库的数据大小_查看mysql数据库容量大小
  3. AAAI 2018论文解读 | 基于置信度的知识图谱表示学习框架
  4. 逆向 EasyBase64
  5. 2019蚂蚁金服面试总结(Java方向)
  6. Linux 安装Zookeeper单机版(使用Mac远程访问)
  7. JS-概述-基本语法-变量-数据类型
  8. 对于初学者,如何轻松学习JavaScript?
  9. 浙大 PAT b1039
  10. 输出正反等腰三角形(菱形)
  11. python3爬取网易云歌单数据清洗_如何利用Python网络爬虫爬取网易云音乐歌词
  12. Python生成高斯白噪声white noise
  13. OGG表级别附加日志到底有多重要?
  14. c语言中get的作用,c语言中get的用法
  15. R 回归 虚拟变量na_互助问答第30期:工具变量、GARCH模型操作和多项选择效信度...
  16. 手机内存卡RAW无法格式化的解决办法
  17. rabbitMq入门
  18. PHP给PDF文件加水印(mpdf插件)
  19. Linux下安装firefox最新版
  20. NTC转0-10V/0-5V热敏电阻转模拟信号温度变送器/温度变送器Cu50 PT100热电阻K型S型电偶NTC转4-20mA 0-10V模拟量NTC热敏电阻转电压10K NTC转0-5V0-10V

热门文章

  1. oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell
  2. spark内核揭秘-02-spark集群概览
  3. C#操作XmlDocument对象 报缺少根节点 一一道来
  4. 猫眼电影评论_电影的人群意见和评论家的意见一样好吗?
  5. 计算机主板各模块复位,电脑主板复位电路工作原理分析
  6. 476. 数字的补数
  7. leetcode 1449. 数位成本和为目标值的最大数字(dp)
  8. leetcode93. 复原IP地址(回溯)
  9. leetcode199. 二叉树的右视图(bfs)
  10. react hooks使用_如何开始使用React Hooks:受控表格