想起小时候玩的 24 点,还真是难忘。那时候两个人,或者四个人,有沉思、有爆发、也有放弃、或者不甘,还有装模作样、有说有笑,乐趣无穷啊。可惜,现在只有对着电脑写程序来满足一下了。。
下面这个这个是以前写的一个24点小游戏,那些变量名,程序的可读性,等等,有点,不说了,照搬,还原以前的我!
运行效果:
(24点)
请输入a:5
请输入b:5
请输入c:5
请输入d:1
(5-(1/5))*5
Process finished with exit code 0
设计思路:
数学感觉一下,容易证明 24 点的计算式可以用以下两种方式囊括(其中 ⊕ 表示加减乘除这四种运算符号):
((a⊕b)⊕c)⊕d
(a⊕b)⊕(c⊕d)
现在,我们只需要把四个数全排列,再配以可能的运算符号便可以了。这里不用考虑括号的放置,因为上面那两个式子已经把括号固定了
完整代码:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import itertools
three, three1 = None, None
def cal():
global three, three1
flag = 1
print('(24点)')
x = int(input('请输入a:')), int(input('请输入b:')), int(input('请输入c:')), int(input('请输入d:'))
L = list(x) ## tuple --> list ,即 [a,b,c,d]
while (flag == 1):
if L[0] <= 0 or L[1] <= 0 or L[2] <= 0 or L[3] <= 0:
print('\n输入值不全是正数,请重新输入...')
x = int(input('请输入a:')), int(input('请输入b:')),