Python 编写24点游戏

想起小时候玩的 24 点,还真是难忘。那时候两个人,或者四个人,有沉思、有爆发、也有放弃、或者不甘,还有装模作样、有说有笑,乐趣无穷啊。可惜,现在只有对着电脑写程序来满足一下了。。

下面这个这个是以前写的一个24点小游戏,那些变量名,程序的可读性,等等,有点,不说了,照搬,还原以前的我!


运行效果

(24点)
请输入a:5
请输入b:5
请输入c:5
请输入d:1
(5-(1/5))*5

Process finished with exit code 0

设计思路

数学感觉一下,容易证明 24 点的计算式可以用以下两种方式囊括(其中 ⊕ 表示加减乘除这四种运算符号):

  1. ((a⊕b)⊕c)⊕d
  2. (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:')), 
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值