24点游戏玩法为:从一副扑克中抽取4张牌,对4张牌使用加减乘除中的任何方法,使计算结果为24。 我们用Python来完成24点游戏的程序设计!!从此站在赌神巅峰 我在拉斯维加斯等你

 PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python实战教程免非下,,一起相互监督共同进步!

一、设计思路:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

由于设计到了表达式,很自然的想到了是否可以使用表达式树来设计程序。本程序的确使用了表达式树,也是程序最关键的环节。简要概括为:先列出所有表达式的可能性,然后运用表达式树计算表达式的值。程序中大量的运用了递归,各个递归式不是很复杂,大家耐心看看,应该是能看懂的

表达式树:

表达式树的所有叶子节点均为操作数(operand),其他节点为运算符(operator)。由于本例中都是二元运算,所以表达式树是二叉树。下图就是一个表达式树

  Python实现扑克24点小游戏 ,从此我就没输过 Python 第1张

具体步骤:

1、遍历所有表达式的可能情况

遍历分为两部分,一部分遍历出操作数的所有可能,然后是运算符的所有可能。全排列的计算采用了递归的思想

  Python实现扑克24点小游戏 ,从此我就没输过 Python 第2张

2、根据传入的表达式的值,构造表达式树

由于表达式树的特点,所有操作数均为叶子节点,操作符为非叶子节点,而一个表达式(例如( ( ( 6 + 4 ) - 2 ) * 3 ) = 24) 只有3个运算符,即一颗表达式树只有3个非叶子节点。所以树的形状只有两种可能,就直接写死了

  Python实现扑克24点小游戏 ,从此我就没输过 Python 第3张   Python实现扑克24点小游戏 ,从此我就没输过 Python 第4张   Python实现扑克24点小游戏 ,从此我就没输过 Python 第5张   Python实现扑克24点小游戏 ,从此我就没输过 Python 第6张   Python实现扑克24点小游戏 ,从此我就没输过 Python 第7张

3、计算表达式树的值

也运用了递归

  Python实现扑克24点小游戏 ,从此我就没输过 Python 第8张

4、输出所有可能的表达式

还是运用了递归

  Python实现扑克24点小游戏 ,从此我就没输过 Python 第9张

5、输出结果

  Python实现扑克24点小游戏 ,从此我就没输过 Python 第10张

这样整个程序就全部完成了,注意:很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python实战教程免非下,,一起相互监督共同进步!

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

赞赏支持
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄