贪吃蛇设计
设计目标
运用 python设计出一个简单的贪吃蛇小游戏,以贪吃蛇游戏为目标,完成 游戏开始与结束的规则制定,游戏边界的绘制,物体随机的散落,蛇体的运动 与长度变化等功能模块。
一、需求分析
系统功能的基本要求: 游戏主界面设计; 蛇体运动控制; 物体随机出现; 游戏开始与结束的规则判定; 用户信息(积分等)读取。
二、存储结构设计
采用顺序存储结构 即把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑 关系由存储单元的邻接关系来体现,由此得到的存储表示。本程序借助列表实 现,其中每个存储空间含有所存元素本身的信息,元素之间的逻辑关系是通过 列表下标位置简单计算出来的线性表的顺序存储
1.算法设计
通过主函数中调用多个函数实现程序。 在主函数中实现游戏模块初始化、Pygame时钟对象和游戏的运行主体的加 载。在游戏运行主体的函数中实现游戏初始的定义、键盘输入的判断、食物的 显示、蛇的显示、蛇的移动、蛇是否存活、蛇是否吃到食物、窗体背景、分数 的显示、游戏速度的变化。 在显示食物的函数中,食物的主体用红色表示 在显示蛇的函数中,用列表的方式表示蛇的身体,蛇的边体颜色为蓝色, 其他为亮蓝色。 在移动蛇的函数中,用字典判断蛇头移动的方向,最后要把新生成的蛇头 1
2 长度插入蛇身中。 在判断蛇的存活中,分有两种导致蛇的死亡。一种蛇的头跟窗体的四边重 合;另一种是蛇的头碰到了自己的身体。 在判断蛇是否吃到食物中,当蛇吃到了食物,就重置食物的位置;当蛇没 有吃到实物,就向前移动,并删掉尾部一格。 定义获取食物的函数,食物获取为随机。 在这里,为了使游戏具有更好的体验,设置一个游戏开始和游戏结束的提 示界面函数。 最后定义显示分数的函数。
2.程序代码
代码如下(示例):
#主函数 defmain(): pygame.init() #模块初始化 snake_speed_clock=pygame.time.Clock() #创建 Pygame时钟对象 screen=pygame.display.set_mode((windows_width,windows_height)) #显示界面 screen.fill(white) #设置开始背景为白色
3 pygame.display.set_caption("Python贪吃蛇小游戏") #设置标题 show_start_info(screen) #欢迎信息 whileTrue: running_game(screen,snake_speed_clock) show_gameover_info(screen) #游戏运行主体 defrunning_game(screen,snake_speed_clock): startx=random.randint(3,map_width-8) s