问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python想做一个24点游戏,请大神帮我做一个。真的感谢。做出来的。我可以给你钱。需要程序 方

发布网友 发布时间:2022-05-25 00:21

我来回答

2个回答

热心网友 时间:2023-11-18 00:59

#!python
# vim:fileencoding=utf-8
# =weibo.com/niio=
#2016-04-22
#Theme:Python 24点智商矫正工具
#Memo:python2.7/开箱即用/玩得开薰 XD 
######################
from itertools import combinations
import random
def bracket_exp(op, a, b):
    return (op, a, b)

def remove_op(ops, op):
    tmp = list(ops)
    tmp.remove(op)
    return tmp

def remove_nums(nums, number_combine):
    tmp = list(nums)
    for i in number_combine:
        tmp.remove(i)
    return tmp

def append(res_nums, exp):
    tmp = list(res_nums)
    tmp.append(exp)
    return tmp


def evalexp(e):
   if not isinstance(e, tuple):
       return int(e)
   else:
       e1 = evalexp(e[1])
       e2 = evalexp(e[2])
       if e1 == None or e2 == None:
           return None
       if e[0] == '+':
           return e1 + e2
       elif e[0] == '-':
           return e1 - e2
       elif e[0] == '*':
           return e1 * e2
       elif e[0] == '/':
           if e2 != 0 and e1 % e2 == 0:
               return e1 / e2
           else:
               return None
       else:
           None

def fmtexp(e):
   if not isinstance(e, tuple):
       return e
   else:
       e1 = fmtexp(e[1])
       e2 = fmtexp(e[2])
       if e[0] == '+':
           return '(%s + %s)' % (e1, e2)
       elif e[0] == '-':
           return '(%s - %s)' % (e1, e2)
       elif e[0] == '*':
           return '(%s * %s)' % (e1, e2)
       elif e[0] == '/':
           return '(%s / %s)' % (e1, e2)
       else:
           None

# r = evalexp(('+', '1', ('*', '4', ('-', '6', '8'))))
# r = fmtexp(('+', '1', ('*', '4', ('-', '6', '8'))))

def iter_all_exp(ops, nums, target):
    if len(nums) == 1:
        r = evalexp(nums[0])
        if r and abs(r - target) < 0.001:
            print fmtexp(nums[0]) , '=' + str(target)
        return
    for number_combine in combinations(nums, 2):
        for op in ops:
            res_ops = remove_op(ops, op)
            res_nums = remove_nums(nums, number_combine)

            exp = bracket_exp(op, number_combine[0], number_combine[1])
            iter_all_exp(res_ops, append(res_nums, exp), target)

            if op == '-' or op == '/':
                exp = bracket_exp(op, number_combine[1], number_combine[0])
                iter_all_exp(res_ops, append(res_nums, exp), target)
print "正在出题"
q =random.sample([1, 2, 3, 4, 5,6,7,8,9],  4)

print str(q[0])+"_"+ str(q[1])+"_"+str(q[2])+"_"+str(q[3])+"=24"

show=raw_input("题目不一定有解喔!,回车看答案")
if show=="":
   iter_all_exp(["+", "-", "/", "*"], [q[0], q[1], q[2], q[3]], 24)
else:
   print ""

热心网友 时间:2023-11-18 01:00

题目具体内容呢,没玩过这个游戏呀
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在五粮液000858可以买进么? 2021年五粮液(000858)总资产、总负债、营业收入、营业成本及净利润统... 手机耗电太快了怎么解决 教你方法,轻松解决 Tag模块数组indexOf,splice的使用方法 JavaScript indexOf简介 对于一个JS对象数组怎么使用IndexOf方法得到索引呢? Array.indexOf() 学习 狼来了是什么效应 当两种刺激都出现,认知者会产生首因效应还是近因效应呢? 大过年的…… 奥龙油股市涨跌今天股市涨跌情况 现在的大盘真难看懂,有可以直接看大盘情况的指标吗?听说经传软件的大盘分析平台挺好的,能及时逃顶? 现在大盘是什么情况? 今天的大盘会以什么样的情况收盘? 现在的大盘情况怎么样? 今天股市情况怎样 今天大盘会是什么情况 今天大盘情况 关于今天的大盘的分析情况 再是用ajax提交表单的时候,经常出现重复提交,有通过token的,有提交后跳转页面的。怎么解决? 怎样避免频繁的Ajax提交?只提交最后一次的? 如何全局防止ajax重复提交 为什么办分公司不能起名xxxx幸福庄园?工商局说不能出现庄园?农庄?农场?这些字样。 起名山东分公司和济南分公司的区别 佳能5D Mark II 照片如何传到手机里 交通道路指示牌 制作道路指示牌除参照“道路交通标志和标线(GB+5768.2-2009)”,具体安装需要看那些国标 习作写一件自已经历过的难忘的事100字 荣耀手机隐藏应用方法? 心理咨询师三级考试的评分标准? 北京大兴区瀛海工业园 邮政包裹上哪拿??? 想查询股市里每天的详细成交量情况 python题求解! 邮寄挂号信需要几天 最近这几天美国和周边股市的涨跌情况怎样? 离瀛海家园1号院最近的邮政储蓄所在哪里 北京大兴区瀛海镇瑞和庄的邮政编码是多少 石家庄的出租车型号和公交车型号 北京怡乐村附近哪有邮政银行? 大年初二石家庄有40路到北站的公交车吗 黄海客车平均售价 从石家庄到井陉去哪能坐车?多少钱?一天几趟? 石家庄到藁城公交516何时开通 石家庄哪三车限行 男生对女生说斯莫拉什么意思? 图片字体识别,求PS大仙。 这是什么体? 连笔字不认识 华为手机怎么裁剪音频 从《儒林外史》第一回你可以看出王冕是怎样一个人?