扑克牌比大小对抗游戏中每人俩张牌比大小算法

VB编写24点扑克牌算法游戏
VB编写的一个智能24点游戏:在程序随机生成的四张扑克牌中只能用加、减、乘、除以及括号算出这四张牌,并使得结果为24,或者宣布根本无解。每张牌必须且只能运算一次;J、Q、K可设置为11、12、13,以下为24点算法:
  24点算法直觉上应该穷举表达式,然后求值。然而,由于括号的存在,使得穷表达式并非易事。实际上,括号的作用仅仅是提高+、-运算的优先级而已,如果我们显式地规定符号的优先级,一样可以完成任务。具体地说,假设给定的点数为a、b、c、d,运算符号为①、②、③,表达式如下:a① b ②c ③d
  如果强制规定①、②、③的优先顺序,就不必考虑括号的添加和四则运算的优先级问题了。而3个运算符的运算顺序有3!=6种,分别写出来就是:1.①②③
6.③②①
  而每种运算顺序的等价的表达式分别为:
  1.((x①y)②z)③w
2.(x①y)②(z③w)
3.(x①(y②z))③w
  4.x①((y②z)③w)
5.(x①y)②(z③w)
6.x①(y②(z③w))
  显然2式和5式是等价的,因此只需考虑5种情况。这样括号的问题就解决了。
  接着就很简单了,只要做出abcd的一组排列,按照运算符的优先级算出结果,最后和24比较就可以了。
  由于上的算法问题,使得输出的每种表达式的格式都为:1.((x①y)②z)③w
2.(x①y)②(z③w)
  3.(x①(y②z))③w
4.x①((y②z)③w)
6.x①(y②(z③w)) 五种之一,这样就出现了多余的括号
  问题,我们必须解决这个问题 才能使得输出结果更加规范
  去除多余的括号 其思想为:先将四个括号都清空,看情况再给它添加上去……
运行环境:Windows/VB6
相关标签:
软件大小:227K
软件属性:共享版 | 简体中文
软件评级:
收录更新: |
相关链接:暂无演示
软件截图:
下载地址:
本类推荐下载
本类最新更新
最新网页特效}

我要回帖

更多关于 扑克牌三张比大小技巧 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信