python 24点游戏

非递归版本,递归版本一直有点问题,等会再调

def func():
    while True:
        try:
            num = list()
            num = input().split(" ")
            for i, k in enumerate(num):
                if k == "A":
                    num[i] = 1
                elif k == "T":
                    num[i] = 10
                elif k == "J":
                    num[i] = 11
                elif k == "Q":
                    num[i] = 12
                elif k == "K":
                    num[i] = 13
            calculate_list_1,Flag = calculate(num,num,1)
            calculate_list_2,Flag = calculate(calculate_list_1,num,2)
            calculate_list_3,Flag = calculate(calculate_list_2,num,3)
            calculate_list_4,Flag = calculate(calculate_list_3,num,4)
            if Flag:
                print("Yes")
            else:
                print("No")
        except EOFError:
            break
def swap(a, b):
    if a < b:
        c = a
        a = b
        b = c
    return int(a), int(b)
def calculate(num_list_1,num_list_2,round):
    calculate_tmp1 = list()
    for num1 in num_list_1:
        for num2 in num_list_2:
            num1, num2 = swap(int(num1), int(num2))
            num = num1+num2
            if round==4 and num==24:
                return calculate_tmp1,True
            if num not in calculate_tmp1:
                calculate_tmp1.append(num)
            num = num1-num2
            if round==4 and num==24:
                return calculate_tmp1,True
            if num not in calculate_tmp1:
                calculate_tmp1.append(num)
            num = num1*num2
            if round==4 and num==24:
                return calculate_tmp1,True
            if num not in calculate_tmp1:
                calculate_tmp1.append(num)
            if num2!=0:
                num = num1 / num2
                if round == 4 and num == 24:
                    return calculate_tmp1, True
                if num not in calculate_tmp1:
                    calculate_tmp1.append(num)
    return calculate_tmp1,False
if __name__ == "__main__":
    func()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值