python经典小游戏:24速算(案例)

简介: python经典小游戏:24速算(案例)
import itertools
import random
import re

# 计算出结果的函数

def solution(data):
    for i in itertools.permutations(data):
        for j in itertools.product(['+', '-', '*', '/'], repeat=3):
            li = [
                f'(({i[0]}{j[0]}{i[1]}){j[1]}{i[2]}){j[2]}{i[3]}',
                f'({i[0]}{j[0]}{i[1]}){j[1]}({i[2]}{j[2]}{i[3]})',
                f'({i[0]}{j[0]}({i[1]}{j[1]}{i[2]})){j[2]}{i[3]}',
                f'{i[0]}{j[0]}(({i[1]}{j[1]}{i[2]}){j[2]}{i[3]})',
                f'{i[0]}{j[0]}({i[1]}{j[1]}({i[2]}{j[2]}{i[3]}))'
            ]
            for k in li:
                try:
                    if eval(k) == 24:
                        print(f'{k}=24')
                        return True
                except ZeroDivisionError:
                    pass
    return False

 

#机器给人出题


def A2():
    poke = [str(random.randint(1, 13)), str(random.randint(1, 13)),
            str(random.randint(1, 13)), str(random.randint(1, 13))]
    poke = sorted(poke)
    print(poke)
    expr = input("输入运算式:")
    li = re.split('[\+\-\*\/\(\)]', expr)
    li = sorted(li)[-4:]
    if len(li) == 4:
        if li == poke:
            if eval(expr) == 24:
                print("正确!")
            else:
                print('错误!')
        else:
            print("检测到错误,exit")
    else:
        print("请遵守规则")

 

#人给机器出题


def A1():
    print("规则:\n一、输入四个1-13的数字\n二、各个数字之间要使用空格")
    print("请给机器出题:")
    topic = input().split()
    for i in topic:
        i = int(i)
        if 1 <= i <= 13:
            topic = sorted(topic)
            flag = solution(topic)
            if flag:
                print("\n得出")
                break
            elif not flag:
                print("无法得出")
                break
        else:
            print("请输入1-13的数字")
            break

 

#框架


while True:
    print("1.给机器出题")
    print("2.机器出题")
    print("3.退出")
    print("选择序号:")
    cmd = input()
    while True:
        if cmd == '1' or '2' or '3':
            break
        else:
            print("数据不规范,请重新输入!")
    if cmd == '1':
        A1()
    elif cmd == '2':
        A2()
    elif cmd == '3':
        break
    else:
        pass
input("按回车退出")
相关文章
|
2月前
|
数据采集 前端开发 NoSQL
Python编程异步爬虫实战案例
Python编程异步爬虫实战案例
76 2
|
2月前
|
数据采集 自然语言处理 API
Python反爬案例——验证码的识别
Python反爬案例——验证码的识别
48 2
|
2月前
|
iOS开发 MacOS Python
Python编程小案例—利用flask查询本机IP归属并输出网页图片
Python编程小案例—利用flask查询本机IP归属并输出网页图片
28 1
|
2月前
|
存储 大数据 Python
案例学Python:filter()函数的用法,高级!
`filter()`函数是Python中处理序列数据的强大工具,它允许我们高效地根据条件过滤元素。通过结合匿名函数、常规函数或直接利用Python的内置逻辑,`filter()`提供了灵活且高效的过滤机制,尤其在大数据处理和内存敏感的应用中展现出其价值。掌握 `filter()`的使用,不仅能提升代码的可读性和效率,还能更好地适应Python的函数式编程风格。
45 2
|
2月前
|
Python
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
19 1
|
2月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
33 0
|
2月前
|
人工智能 API iOS开发
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
38 0
|
2月前
|
人工智能 小程序 Python
Python编程小案例——编一个事件提醒弹窗小程序
Python编程小案例——编一个事件提醒弹窗小程序
34 0
|
2月前
|
IDE 开发工具 iOS开发
Python编程案例:招生档案按省份地区归档
Python编程案例:招生档案按省份地区归档
19 0
|
2月前
|
IDE 开发工具 iOS开发
Python编程案例:中文金额转换并计算
Python编程案例:中文金额转换并计算
45 0

热门文章

最新文章