Python实现24点游戏 |
您所在的位置:网站首页 › 计算器24点游戏怎么输答案 › Python实现24点游戏 |
24点游戏是一种数学益智游戏,它的目标是通过使用加法、减法、乘法和除法这四种基本算术运算,使得四个数字的结果等于24。这个游戏不仅能锻炼玩家的数学计算能力,还能提高逻辑思维和快速反应能力。 游戏规则非常简单: 游戏通常使用一副扑克牌中的1到10的数字牌,去掉大小王和J、Q、K,因为这些牌没有具体的数值。每次从牌堆中抽取四张牌,或者由玩家随机选择四张数字牌。玩家需要使用这四张牌上的数字,通过加、减、乘、除的组合,得出结果为24的算式。每个数字必须且只能使用一次。运算的顺序没有限制,可以使用括号来改变运算顺序。完成算式后,可以使用计算器验证结果是否正确。24点游戏有多种解法,一个数字组合可能有多种不同的算式可以得到24。例如,使用数字2、3、4、5,可以得到以下算式之一: (5 - 2) * (3 + 4) = 24(5 - 3) * (4 + 2) = 244 * (5 - 2) + 3 = 24等等。这个游戏适合各个年龄段的人玩,可以单独挑战,也可以和朋友或家人一起竞赛,看谁能更快地找到正确的解法。24点游戏不仅是一种娱乐方式,还是一种很好的数学教育工具。 程序很多,但是都不如自己写一个: import random def random_solve_24(): while True: nums = [random.randint(1, 14) for _ in range(4)] print(f'请用下面的数据完成24点:{nums}') solutions = generate_solutions_improved(nums) a=input('输入任意键回车后查看答案') print(f'解法为{solutions}') a=input('输入任意键回车后查看下一题(退出输入Y)') print('==============================================================================================') if a=='Y': break def generate_solutions_improved(nums, target=24, epsilon=1e-6): def solve(nums, history): if len(nums) == 1: if abs(nums[0] - target) < epsilon: solutions.add(history[0]) return for i in range(len(nums)): for j in range(i + 1, len(nums)): new_nums = [nums[k] for k in range(len(nums)) if k != i and k != j] new_history = [history[k] for k in range(len(nums)) if k != i and k != j] for a, b, op, in [(nums[i], nums[j], '+'), (nums[i], nums[j], '-'), (nums[j], nums[i], '-'), (nums[i], nums[j], '*'), (nums[i], nums[j], '/'), (nums[j], nums[i], '/')]: if op == '/' and abs(b) < epsilon: continue # Avoid division by zero result = eval(f"a{op}b") expression = f"({history[i]}{op}{history[j]})" solve(new_nums + [result], new_history + [expression]) solutions = set() solve(nums, list(map(str, nums))) return solutions random_solve_24()运行就可以了。 打包程序主要依靠pyinstaller库实现,安装: pip install pyinstaller然后win+r,输入cmd打开终端 输入自己的代码文件所在的路径: cd /d "E:\Xiao work\其他\脚本系列"在对应的这个文件夹里面去直接输入cmd打开也行。 然后输入打包的文件名称,我的文件名叫 24点游戏.py pyinstaller --onefile 24点游戏.py等待就行,后面就可以在这个目录下的dist文件夹里面找到这个程序了。 然后双击运行就行了:(这个文件可以) 效果如下: 效果还不错。可以思考,然后看答案。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |