主要内容 #
-
- 24点游戏介绍
- 游戏界面展示
- 功能解构
- PyGame基础框架
收获 #
了解24点游戏规则,并且对本次实践可以达到的游戏效果初略了解。
1.24点游戏介绍 #
游戏规则∶
从1~10这十个数字中随机抽取4个数字(可重复),对这四个数运用加、减、乘、除和括号进行运算得出24。每个数字都必须使用一次,但不能重复使用。
注:本次代码中所需用到的音频、字体等资源压缩包,点击下载。
2.游戏界面展示 #

3.功能解构 #
根据如上玩法以及界面展示,现对24点的功能进行解构,具体如下:
- 1,界面:一个图像背景,11个区域用于填充卡片信息。
- 2,功能:卡片类和按钮类的定义。
- 3,功能:游戏类的定义,主要包括:生成随机数模块,验证模块,重置模块等。
- 4,功能:游戏结束功能的判断。
后续逐步完成每个功能模块。
4.PyGame基础框架 #
PyGame最基础的框架代码如下,后续所有的功能都是在该框架基础上添加和修正。
import copy
import sys
import os
import random
import pygame
from fractions import Fraction
#如下是上一步新增的该项目所需变量
RED = (255, 0, 0)
BLACK = (0, 0, 0)
AZURE = (240, 255, 255)
WHITE = (255, 255, 255)
MISTYROSE = (255, 228, 225)
PALETURQUOISE = (175, 238, 238)
PAPAYAWHIP = (255, 239, 213)
CURRENTPATH = os.path.abspath(os.path.dirname(__file__))
FONTPATH = os.path.join(CURRENTPATH, 'fonts/font.TTF')
AUDIOWINPATH = os.path.join(CURRENTPATH, 'audios/win.wav')
AUDIOLOSEPATH = os.path.join(CURRENTPATH, 'audios/lose.wav')
AUDIOWARNPATH = os.path.join(CURRENTPATH, 'audios/warn.wav')
BGMPATH = os.path.join(CURRENTPATH, 'audios/bgm.mp3')
# 数字卡片
# --数字卡片字体颜色
NUMBERFONT_COLORS = [BLACK, RED]
# --数字卡片背景颜色
NUMBERCARD_COLORS = [MISTYROSE, PALETURQUOISE]
# --数字卡片字体路径与大小
NUMBERFONT = [FONTPATH, 50]
# --数字卡片位置
NUMBERCARD_POSITIONS = [(25, 50, 150, 200), (225, 50, 150, 200), (425, 50, 150, 200), (625, 50, 150, 200)]
# 运算符卡片
# --运算符种类
OPREATORS = ['+', '-', '×', '÷']
# --运算符卡片字体颜色
OPREATORFONT_COLORS = [BLACK, RED]
# --运算符卡片背景颜色
OPERATORCARD_COLORS = [MISTYROSE, PALETURQUOISE]
# --运算符卡片字体路径与大小
OPERATORFONT = [FONTPATH, 30]
# --运算符卡片位置
OPERATORCARD_POSITIONS = [(230, 300, 50, 50), (330, 300, 50, 50), (430, 300, 50, 50), (530, 300, 50, 50)]
# 按钮卡片
# --按钮类型
BUTTONS = ['RESET', 'ANSWERS', 'NEXT']
# --按钮卡片字体颜色
BUTTONFONT_COLORS = [BLACK, BLACK]
# --按钮卡片背景颜色
BUTTONCARD_COLORS = [MISTYROSE, PALETURQUOISE]
# --按钮卡片字体路径与大小
BUTTONFONT = [FONTPATH, 30]
# --按钮卡片位置
BUTTONCARD_POSITIONS = [(25, 400, 700/3, 150), (50+700/3, 400, 700/3, 150), (75+1400/3, 400, 700/3, 150)]
# 屏幕大小
SCREENSIZE = (800, 600)
# 卡片类型
GROUPTYPES = ['NUMBER', 'OPREATOR', 'BUTTON']
#如上是上一步新增的该项目所需变量
def main():
# 加载背景音乐
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode(SCREENSIZE)
pygame.display.set_caption('24点小游戏-大师码')
win_sound = pygame.mixer.Sound(AUDIOWINPATH)
lose_sound = pygame.mixer.Sound(AUDIOLOSEPATH)
warn_sound = pygame.mixer.Sound(AUDIOWARNPATH)
pygame.mixer.music.load(BGMPATH)
pygame.mixer.music.play(-1, 0.0)
# 游戏主循环
clock = pygame.time.Clock()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT: # 是否退出
pygame.quit()
sys.exit(-1)
screen.fill(AZURE) # 背景设置
pygame.display.update()
clock.tick(30)
if __name__ == '__main__':
main()
请大家新建项目,新建代码文件,将如上代码写到文件中,尝试运行,查看具体程序效果。
小结 #
- 本节主要介绍24点游戏的游戏规则,并且展示最后开发出的小游戏效果图,以及功能解构和基础框架。