欢迎来到天天文库
浏览记录
ID:19807816
大小:110.50 KB
页数:17页
时间:2018-10-06
《课程设计贪吃蛇小游戏_1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计报告课程名称:面向对象程序设计C++设计题目:贪吃蛇小游戏专业:计算机科学与技术姓名:学号指导教师:李晓虹2015年1月10日目录一、开发背景及意义21.1开发背景2二、系统需求分析2三、总体设计4四、详细设计54.1系统模块54.2任务执行流程54.3小人移动流程6五、系统调试6六、结果分析186.1运行界面186.2结果分析19七、总结20一、开发背景及意义1.1开发背景在现今电子信息高速发展的时代,电子游戏已经深入人们的日常生活,成为娱乐方式。但是游戏设计结合了日新月异的技术,在一个产品中整合了复杂的设计、艺术、声
2、音和软件。贪吃蛇游戏是一款很有趣味的游戏,它由蛇,苹果,墙壁组成,用键盘控制贪吃蛇的方向,让它能够吃到更多的苹果,不能撞到墙壁,一旦撞到墙壁,游戏结束。此次设计是在MicrosoftWindows7系统下,以C++为开发语言进行游戏的设计与实践。二、系统需求分析2.1.项目概述小时候都玩过贪吃蛇这个经典的小游戏,在我们的普通手机里似乎都是必备的。它伴随着我们的童年,经历了好多好多时光。它带给我们了许多的乐趣。学习了c++这门编程语言后,我就想着能不能把它做出来,在我查看了相关知识后,明白了其中的道理,就尝试着自己写出这个小游戏来
3、,而且加入了许多可玩性的东西,包括等级选择,暂停/继续和分数制。整个程序采用了类和数组的相关知识实现。2.2.系统的功能描述2.2.1能够显示主菜单和功能游戏需要提供选择界面让玩家进行游戏设置,同时能提供显示玩家的当前的游戏分数。2.2.2能够实现键盘操作功能能够接收到键盘输入的方向键信息,并根据不同的方向键把游戏任务移动到相应的位置,例如,当玩家单击方向键“上”时,贪吃蛇就向上走,但是贪吃蛇一旦运行就不会自动停下,只有控制键盘,改变他的方向不让他撞墙。2.2.3能够自动增长蛇神的长度当贪吃蛇在吃到一个苹果的后,他的身长会增长一
4、个苹果那么长,苹果吃的越多,蛇身越长,游戏所得的分数也越高。2.2.4支持游戏自动选关玩家可以选择不同的级别进行游戏,当级别越高的时候,贪吃蛇跑的越快,控制起来就越困难。2.2.5游戏胜负判断功能在游戏中,当贪吃蛇不碰到墙壁和自身的时候,游戏继续进行,吃到苹果,分数就增长,游戏没有具体胜利,只是看分数的多少,当撞到墙壁和自身的时候,游戏结束。三、总体设计这个程序完成的功能就是和别的游戏一样,最初,给出一个初始化的界面,和一个4个方块组成的小蛇,我们要把那个最初给出那个小蛇穿过那个闪烁的小红黄相间的小方块,然后那个小方块就会变成我
5、们那个小蛇上的组成单元一样的一个小方块,和在别的地方会在出现另一个小方块,我们接下来要做的就是要把那个小方块穿过来,然后我们那个小蛇就会变长了,然后在穿过小方块,就这样重复的做就行了,随着你的穿过你的小蛇就会越来越长了,这是你的得分就会越高,同时你难度也会变大的,因为如果你要碰到四周的变的话,或者你自己的那个小蛇首尾要是相连的话你就会输了,所以当你那个小蛇很长的时候,难度自然就会变大了。四、详细设计这个程序的总思想也就是主要运用宏和子程序的调用,首先,定义了5个宏它们分别为:①屏幕初始化宏定义②在光标位置显示字符和属性定义③显示
6、字符串宏定义④置光标位置宏定义⑤读光标位置的字符和属性宏定义。它们在程序中起到主要的作用。其次,就是子程序定义了,程序中定义了很多的子程序,其中有:①控制子程序②食物子程序,还有记分子程序等。它们首先被主程序调用,然后它们之间再互相调用,这样构成了完整的游戏程序并实现其功能。具体的设计思想是:第一,对数据进行初始化,即对寄存器的初始化,比如对食物的初始化等。第二,开始运行,判断是否符合条件,如果符合赢的条件的话,就会跳转到赢的那个子程序下,然后那个赢的子程序会调用记分的那个子程序,最后显示赢的信息和分数后再转到控制程序执行控制和
7、其后的程序。如果要是输的话,就会跳转到输的那个子程序下,然后那个输的子程序也会调用记分的那个子程序,最后显示得分和信息。如果要是没有赢也没有输的话,那程序会跳到控制的子程序中,等控制完以后程序又会跳到程序判断的那个地方重复的执行。这个就是完成这个游戏程序的整个思想。四、系统调试#include#include#include#include#include#include#defineN22usingnamespacest
8、d;intgameover;intx1,y1;intx,y;longstart;classsnake_position{public:intx,y;snake_position(){};voidinitialize(int&);};snake_positionp
此文档下载收益归作者所有