主要内容 #
-
- 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点游戏的游戏规则,并且展示最后开发出的小游戏效果图,以及功能解构和基础框架。