1 游戏介绍
记忆拼图游戏的英文名叫做“memory puzzle”,玩家通过记忆找到相同的图片,如图1所示。
图1 记忆拼图游戏
从图1中可以看出,玩家每次点击两张图片,如果这两个图片是相同的图案(包括颜色和形状),则图片就会一直显示,不再扣过来;如果玩家找到的两张图片不相同,则图片会再次扣过来,玩家需要继续找,直到找到所有相同的图片。
2 Pygame编程框架的修改
2.1 定义游戏屏幕的宽度和高度
定义表示游戏屏幕宽度和高度的变量,如图2所示。
图2 定义表示游戏屏幕宽度和高度的代码
其中,WINDOWWIDTH是屏幕的宽度,WINDOWHEIGHT是屏幕的高度。
2.2 添加自定义函数main()
在代码起始位置处,添加添加自定义函数main(),该函数的作用是完成初始化操作并启动游戏。将Pygame编程框架中创建游戏屏幕、设置屏幕标题以及while True循环的代码都放在main()函数中,如图3所示。
图3 main()函数代码
其中,因为要在其它函数中使用创建的游戏屏幕DISPLAYSURF,第6行代码将其声明为全局变量;第7行代码创建游戏屏幕DISPLAYSURF;第8行代码设置屏幕的标题;从第9行代码开始是Pygame编程框架中的while True循环;第10-13行代码处理事件队列中的事件;第15行代码设置游戏屏幕的背景,BGCOLOR在main()函数之外定义,如图4所示。
相关链接1 global关键字的相关资料,请参考
《Python中的全局变量与局部变量》
图4 定义颜色的代码
其中,第22-31行代码定义了游戏中使用的各种颜色;第33行代码定义了背景颜色BGCOLOR。
2.3 设置游戏的主程序
游戏主程序的代码如图5所示。
图5 游戏主程序的代码
其中,第35行判断__name__值是否是“__main__”,如果是,则调用main()函数启动游戏。
相关链接2 游戏主程序代码的相关资料,请参考
《Python中__name__==’__main__’的含义》
3 程序运行效果
修改后的Pygame编程框架,代码运行效果如图6所示。
图6 代码运行效果
4 完整代码
修改后的Pygame编程框架代码如下所示。
import pygame
import os
from pygame.locals import *def main():global DISPLAYSURFDISPLAYSURF = pygame.display.set_mode((WINDOWWIDTH,WINDOWHEIGHT))pygame.display.set_caption('Memory Puzzle')while True:for event in pygame.event.get():if event.type == QUIT:pygame.quit()os.sys.exit()DISPLAYSURF.fill(BGCOLOR)pygame.display.update()pygame.init()
WINDOWWIDTH = 640
WINDOWHEIGHT = 480GRAY = (100, 100, 100)
NAVYBLUE = ( 60, 60, 100)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = ( 0, 255, 0)
BLUE = ( 0, 0, 255)
YELLOW = (255, 255, 0)
ORANGE = (255, 128, 0)
PURPLE = (255, 0, 255)
CYAN = ( 0, 255, 255)BGCOLOR = NAVYBLUEif __name__ == '__main__':main()