【Python游戏】用Python实现一个测试你智商的小游戏——24点,过不了三关的都是细狗 | 附带源码

本文介绍了如何使用Python和pygame模块创建一个24点游戏,旨在测试玩家的智力。游戏通过生成随机数字和运算符,挑战玩家在限定时间内通过四则运算得到24。文章包括环境搭建、代码实现细节,如检查控件点击、计算逻辑等,并提供了效果展示。虽然对初学者有一定难度,但通过自我思考仍可理解。想获取源码的读者可联系作者。
摘要由CSDN通过智能技术生成

前言

好咯,包子们下午好
今天小编主要是过来测试一下大家的智商,没别的意思,不是看不起大家,我感觉今天实现的小游戏,可能大家真的过不了三关!
哈哈哈,废话不多说吧
直接开始我们的游戏实现功能

相关文件

关注小编,私信小编领取哟!
当然别忘了一件三连哟~~
Python日志

开发工具

Python版本:3.7.8
相关模块:
pygame模块;
random模块;
pyttsx3模块;
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

效果展示

在这里插入图片描述
在这里插入图片描述

代码实现

导入模块

import os
import sys
import pygame
from cfg import *
from modules import *
from fractions import Fraction

检查控件是否被点击

def checkClicked(group, mouse_pos, group_type='NUMBER'):
    selected = []
    # 数字卡片/运算符卡片
    if group_type == GROUPTYPES[0] or group_type == GROUPTYPES[1]:
        max_selected = 2 if group_type == GROUPTYPES[0] else 1
        num_selected = 0
        for each in group:
            num_selected += int(each.is_selected)
        for each in group:
            if each.rect.collidepoint(mouse_pos):
                if each.is_selected:
                    each.is_selected = not each.is_selected
                    num_selected -= 1
                    each.select_order = None
                else:
                    if num_selected < max_selected:
                        each.is_selected = not each.is_selected
                        num_selected += 1
                        each.select_order = str(num_selected)
            if each.is_selected:
                selected.append(each.attribute)
    # 按钮卡片
    elif group_type == GROUPTYPES[2]:
        for each in group:
            if each.rect.collidepoint(mouse_pos):
                each.is_selected = True
                selected.append(each.attribute)
    # 抛出异常
    else:
        raise ValueError('checkClicked.group_type unsupport %s, expect %s, %s or %s...' % (group_type, *GROUPTYPES))<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值