基于Python的贪吃蛇游戏设计

收藏关注不迷路


前言

  不管一款什么样的软件都应该实现它相对的功能,而此次的贪吃蛇作为一款小型的单机游戏作用就是为人们提供多样化休闲娱乐的选择之一。简单性,毋庸置疑这是贪吃蛇应有的特点,不论是操作简单还是游戏内容简单,都能使得它能面向各个年龄阶段的人群。对于那些全身心投入工作、整日奔波的人来说,他们不可能投入过多的时间和精力在游戏上,所以贪吃蛇这类小游戏是一个不错的选择,也能满足其娱乐需求。也正是因为简单性,贪吃蛇没有像其他大型游戏的趣味性和丰富度。所以,为了增加游戏的竞争力,本次的系统将加入游戏难度选择模块。

一、功能介绍

  本贪吃蛇游戏系统的实现就是在屏幕显示区域内绘制出一条小蛇,同时在与小蛇身体不重合的屏幕显示区域内绘制出一个食物,游戏玩家通过键盘上的方向键来操控小蛇的行进方向去吃掉食物,食物被吃掉后又会在显示区域内随机出现另一个食物,而小蛇每吃下一个食物身体便会增长一段,如此反复,蛇越长时则对游戏玩家来说越难操作。当蛇的头部撞击到屏幕边缘或是蛇身的任意一个部位的时候,游戏结束[11]。
贪吃蛇游戏实现的关键就在于蛇身图形组建和蛇行进轨迹的绘制。我们可以通过画小矩形块(rect属性)的方式来画出小蛇,在小蛇的每次移动的时候,删掉蛇身的最后一个矩形块,在蛇头增加一个新的矩形块,就相当于把蛇的最后一个矩形块加在蛇头的位置。小蛇每移动一个单位,屏幕就重新绘制一次,这样就可以实现小蛇行进的动态效果。而在蛇吃下食物的时候,蛇头覆盖食物,在蛇尾加上一个小矩形块,同时利用random模块随机绘制另一个食物(上一个食物此时消失)[12]。

二、开发环境

开发语言:Python
软件版本:python3.7/python3.8
数据库工具:Navicat11
开发软件:PyCharm/vs code

————————————————

三、程序流程设计

1.程序流程图

  本次设计的游戏程序运行的流程框图如图4-1所示。
在这里插入图片描述

图4-1 程序流程框图

2.界面设计

首先定义程序运行界面的大小,背景色等,便于在各个界面显示统一,为玩家提供更好的观感。
游戏界面分为:开始界面、游戏界面和结束界面。在开始界面时,程序运行窗口左上角显示自定义的游戏名称,居中位置显示导入的背景图片,下方显示玩法说明及操作指南;在游戏界面时,整个程序窗口用于游戏,小蛇可在窗口中任意行进,食物显示为蓝色圆形,右上角显示玩家分数,每吃掉一个食物增加一分;当游戏结束时,显示结束界面,窗口居中位置为“GameOver”字样图片,下方则显示游戏提示“请按任意键重新游戏或Esc键退出游戏”。

3.功能设计

除了游戏的基本功能实现之外,为了增加游戏的可玩性设置了F1加速、F2减速、F3无敌等功能。在游戏中还添加了暂停功能,玩家可通过SPACE键来暂停/继续游戏。每当玩家吃到5个食物时随机生成一堵长度在1-5之间的障碍物,而且速度也会增加。在游戏结束时,可按除ESC以外的任意键来重新开始游戏,按ESC键则退出程序。
(三)游戏过程
游戏开始时小蛇会有一个初始方向,如果玩家不输入有效的方向操作,小蛇则会一直按次方向前进,而且小蛇的不能反方向移动,也就是说不能将蛇尾当作蛇头来移动。当用户键入有效的方向之后,蛇头会率先朝玩家给定的方向移动,而蛇身随着蛇头的移动而移动(覆盖此前的轨迹)。贪吃蛇移动实现的方式就是在移动的方向绘制一个矩形块当作蛇头,而蛇尾则删掉一个矩形块,整条蛇重新绘制刷新在屏幕中,这样看起来蛇就向前移动了一个单位的距离。
在本系统中游戏的碰撞检测包含了三种情况:一是蛇吃到食物,此时蛇身增加一个矩形块;二是蛇头和蛇身的碰撞,此时游戏结束;三是蛇头与障碍物的碰撞,正常情况下游戏也会结束(无敌模式下贪吃蛇不会死亡)。

四、系统实现

本次系统设计用到的主要模块及作用如下表5-1所示。
表5-1 贪吃蛇系统主要模块
在这里插入图片描述

(一)功能概览
本次系统设计用到的主要函数及作用如下表5-2所示。
表5-2 贪吃蛇系统主要函数
在这里插入图片描述

五、效果图

在这里插入图片描述

在这里插入图片描述

目录
摘要 I
Abstract II
一、绪论 1
(一)研究现状与背景 1
(二)行性分析 2
二、需求分析 2
(一)功能性需求 2
(二)非功能性需求 3
三、游戏及开发工具简介 3
(一)游戏简介 3
(二)Python简介 3
1.Python的运行原理 3
2.Python的特点 4
3.PyGame简介 5
(三)PyCharm简介 5
四、概要设计 6
(一)功能介绍 6
(二)程序流程设计 6
1.程序流程图 6
2.界面设计 7
3.功能设计 8
(三)游戏过程 8
五、系统实现 8
(一)功能概览 9
(二)构建开始界面 9
(三)蛇与食物的绘制 10
(四)蛇的移动 11
(五)游戏运行主体 12
5.6 碰撞检测 14
6 系统测试 15
6.1 开始游戏 15
6.2 生成障碍物 15
6.3 无敌功能 16
6.4 系统测试 17
七、优化与总结 18
(一)优化升级设想 18
(二)项目总结 18
致谢 20
参考文献 21

猜你喜欢

转载自blog.csdn.net/QQ2743785109/article/details/133393431