Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python游戏开发,pygame模块,Python实现24点小游戏

Python游戏开发,pygame模块,Python实现24点小游戏

作者头像
玖柒的小窝
修改于 2021-12-24 03:39:42
修改于 2021-12-24 03:39:42
1K00
代码可运行
举报
文章被收录于专栏:各类技术文章~各类技术文章~
运行总次数:0
代码可运行

前言

本期我们将制作一个24点小游戏,让我们愉快地开始吧~

效果展示

开发工具

Python版本: 3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块。

环境搭建

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

游戏规则(改编自维基百科):

从1~10这十个数字中随机抽取4个数字(可重复),对这四个数运用加、减、乘、除和括号进行运算得出24。每个数字都必须使用一次,但不能重复使用。详见:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://zh.wikipedia.org/wiki/24%E7%82%B9

逐步实现:

Step1****:制作24点生成器

既然是24点小游戏,当然要先定义一个24点游戏生成器啦。主要思路就是随机生成4个有解的数字,且范围在1~10之间,代码实现如下:

在验证4个数字是否有解并求出所有解部分,我直接暴力枚举然后去重了,感兴趣的同学可以自己再优化一下求解算法(有数字重复的时候)。我的代码如下图所示,其实就是递归枚举所有排序然后一一验证是否有解:

Step2****:定义游戏精灵类因为玩家需要通过鼠标点击来操作卡片,这时候就涉及到一些碰撞检测。所以先定义一些必要的游戏精灵类。

①卡片类

卡片类的定义也很简单,在屏幕上根据被赋予的属性值来显示自身即可。当然之后也需要根据用户的操作来改变这些属性值(内容、颜色、字体等)并在屏幕上根据属性的改变而改变显示状态即可。具体而言代码实现如下:

②按钮类

按钮类和卡片类类似,唯一的不同点就是在用户点击按钮时需要根据该按钮的功能来响应用户的本次点击操作(即实现一次该功能)。因此只需要继承卡片类,然后再定义一个响应用户点击按钮事件的回调函数即可。代码实现如下:

Step3****:实现游戏主循环先构思一下怎么设计游戏主界面,个人的简单设计草图如下(不是特别走心的设计草图T_T):

OK,开搞。先初始化、加载必要的素材和定义必要的变量,代码实现如下:

游戏主循环主要分三个部分,首先是按键检测:

根据检测结果更新卡片状态和一些变量:

当有两个数字和一个运算符被点击时,则执行被点击数字1{+/-/×/÷}被点击数字2操作(数字1、2根据点击顺序确定),并进一步更新卡片属性和一些必要的变量:

最后根据各个卡片的属性在屏幕上显示各个卡片,若游戏胜利/游戏失败,则同时显示游戏胜利/游戏失败提示框:

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python小游戏(24点小游戏)
玩法:通过加减乘除操作,小学生都没问题的。 源码分享: 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 g
红目香薰
2022/11/29
2.4K0
Python小游戏(24点小游戏)
Python游戏开发,pygame模块,Python实现乒乓球小游戏
开始界面其实很简单,只需要定义两个按钮,然后当检测到玩家点击按钮时,将按钮对应的值传到接下来的游戏主循环中即可。代码实现如下:
玖柒的小窝
2021/12/14
1.2K0
Python游戏开发,pygame模块,Python实现乒乓球小游戏
Python游戏开发,pygame模块,Python实现2048小游戏
"使用方向键移动方块,两个数字相同的方块撞在一起后,将会合并为一个数字是原来两倍的新方块。游戏的时候尽可能多地合并这些数字方块就行了。" 大概了解了游戏规则之后,我们就可以开始写这个游戏啦~首先,进行一下游戏初始化操作并播放一首自己喜欢的游戏背景音乐:
玖柒的小窝
2021/12/14
1K0
Python游戏开发,pygame模块,Python实现2048小游戏
【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码
本游戏主要分为两个对象,分别是我方坦克和敌方坦克。用户可以通过控制我方的坦克来摧毁敌方的坦克保护自己的“家”,把所有的敌方坦克消灭完达到胜利。敌方的坦克在初始的时候是默认 5 个的(这可以自己设置),当然,如果我方坦克被敌方坦克的子弹打中,游戏结束。从面向对象分析该项目有以下类组成:
爱喝兽奶的熊孩子
2024/04/30
1.3K0
【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码
Python游戏开发,pygame模块,Python实现扫雷小游戏
游戏界面左上角的数字代表所有方格中埋有雷的数目,右上角是一个计时器。你要做的就是根据提示找出方格中所有的雷。
玖柒的小窝
2021/12/14
2.1K0
Python游戏开发,pygame模块,Python实现扫雷小游戏
基于 Python 实现 24 点小游戏
先来了解一下24点游戏,其实24 点游戏就是在给定四个数字,通过加、减、乘、除的运算,将这四个数字组合成结果为 24 的表达式。玩家需要运用自己的数学知识和逻辑思维,灵活运用运算符和数字的组合,找到正确的解法。
三掌柜
2024/03/19
7900
基于 Python 实现 24 点小游戏
PyGame:Python 游戏编程入门-1
pygame是SDL 库的 Python 包装器,它代表Simple DirectMedia 层。SDL 提供对系统底层多媒体硬件组件(例如声音、视频、鼠标、键盘和操纵杆)的跨平台访问。作为停滞不前的PySDL 项目pygame的替代品开始了生活。SDL 的跨平台特性意味着您可以为支持它们的每个平台编写游戏和丰富的多媒体 Python 程序!pygame
苏州程序大白
2022/09/16
2.6K0
PyGame:Python 游戏编程入门-1
Python游戏开发,pygame模块,Python实现过打地鼠小游戏
打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠~
玖柒的小窝
2021/12/14
9270
24点游戏实现(下)
前面 写了一个24点游戏(上)https://cloud.tencent.com/developer/article/1827914,后面又录了一个前半部分代码的实现过程24点游戏实现(上):http
叶子陪你玩
2021/05/24
5890
24点游戏实现(下)
Get这几款亲子数学游戏,让你轻松培养数学小天才!
嘿嘿我们特意为大家整理了一些既可以在家里玩也可以在户外出游的时候玩的数学小游戏,让孩子既能享受游戏的快乐,又能在玩乐中学习、锻炼思维,还能增进亲子陪伴的机会。
用户7378374
2020/05/27
1.6K0
让Python算24点,一点也不难!
昨天做了一个聊天客户端,今天我们来玩一个游戏放松一下,这个游戏就是众所周知的24点!
不可言诉的深渊
2019/07/26
1.4K0
用 PyGame 入门专业游戏开发(二)
上一篇介绍了一个游戏运行的最基本结构,本篇开始根据一个具体的游戏,做一个游戏关卡。下面要做的是一个叫“推麻将”的桌面玩法。现在介绍一下这个玩法的具体内容:
韩伟
2023/12/04
4680
用 PyGame 入门专业游戏开发(二)
使用 phaser3 从零实现一个战疫小游戏
在本文中,我将从零开发一个 H5 游戏,主要使用 phaser3 来制作的游戏。结合当下疫情的严峻形式,我也将一些元素融入到这款游戏中,同时希望疫情早日结束,早点摘下口罩,可以看到彼此脸上洋溢的笑容。
狂奔滴小马
2022/04/15
4K0
使用 phaser3 从零实现一个战疫小游戏
编程实现一个有GUI的24点游戏
24点是指从去除大小王后的52张扑克牌中任取 4 张,通过「加、减、乘、除」四则运算得到 24。是一个历史悠久的趣味小游戏。
蛰虫始航
2019/12/12
1.2K0
编程实现一个有GUI的24点游戏
控制台小游戏—扫雷
在前面一篇中,小编介绍了如何将代码分装在多个文件中的操作。在本篇文章中,小编将介绍一个广受欢迎的小游戏,以帮助大家熟悉这个操作。这个小游戏不仅可以让我们熟悉将代码放在多个文件中的操作,还可以加深我们对数组和函数的理解。快来和小编一起探索扫雷小游戏的乐趣吧!
LonlyMay
2024/10/21
1320
控制台小游戏—扫雷
借助云能力,小游戏开发过程是如何升级的?
导语 | 9月21日,云+社区技术沙龙“小程序·云开发”北京站圆满落幕。本期沙龙腾讯云联合猫眼、即速应用、白鹭引擎等企业,将从小程序·云开发后台技术、云开发实时数据推送实践、云开发AI智能客服实践等方面揭秘云开发应用实践,带来更多技术实战分享。本文是张宇老师关于如何使用白鹭引擎开发和实时数据推送能力更好的为小程序服务的内容分享。
腾讯云开发者社区技术沙龙
2019/10/09
9240
借助云能力,小游戏开发过程是如何升级的?
用 UniApp 开发 TilePuzzle:一个由 CodeBuddy 主动驱动的拼图小游戏
最近在使用 UniApp 做练手项目的时候,我萌生了一个小小的想法——做一个小时候玩过的经典滑动拼图小游戏。它就是那种 3x3 的九宫格拼图,1~8 的数字块留一个空位,玩家通过点击或滑动来完成从左到右、从上到下的排列。玩法简单,但有计时和步数记录,有点益智又有点挑战。
繁依Fanyi
2025/05/18
1380
详解Python GUI版24点游戏制作过程
本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com。 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可用于防止老年痴呆。本项目模拟传统扑克24
Python小屋屋主
2018/04/16
2.5K0
详解Python GUI版24点游戏制作过程
我会用Python秒算24点,你呢?
周末闲来无事,看到隔壁家的老王在和隔壁家的媳妇玩24点,就进屋看了看。发现老王是真不行啊,那不行,这也不行。
sergiojune
2019/08/05
1.2K0
Python实现80后童年经典游戏:坦克大战
FC红白机上的“经典90坦克大战”是不少80后童年的集体回忆(暴露年龄了)。今天我们就分享一个用Python制作的仿“坦克大战”小游戏。
Crossin先生
2021/03/26
2K1
Python实现80后童年经典游戏:坦克大战
推荐阅读
相关推荐
Python小游戏(24点小游戏)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验