贪吃蛇小游戏实验报告[
贪吃蛇游戏_实习报告

课程设计报告贪吃蛇游戏设计专业信息工程系学生姓名王洪松班级信息类101班学号100810518时间2011-03-28—2011-04-01课程设计任务书题目贪吃蛇系(部) 信息工程系专业信息类班级2010级1班学生姓名王洪松学号10081051803 月28 日至04 月01 日共 1 周指导教师(签字)系主任(签字)年月日贪吃蛇游戏设计摘要:贪吃蛇是一款经典的休闲游戏,操作小蛇不停的朝食物的方向前进,直到吃掉了食物。
每吃一个食物,小蛇都会长长一节,随之而来的难度加大;当小蛇的头撞到墙时或者小蛇的头与身体相撞时,小蛇就会死亡;当然,小蛇的速度越快,每一个食物的分数就越高。
进程安排3月28日:规划程序需要调用的各个函数,根据要求要实现的内容 3月29日:图形驱动函数 3月30日:开始画面函数3月31日:控制玩游戏过程的函数4月1日: 图形结束函数组装程序,及其调试020406080100第一季度第三季度东部西部北部开发环境概述Visual C++是微软公司的重要产品之一, 是一种功能强大行之有效的可视化编程工具。
它提供了MFC 类库,使用户可以方便的开发自己想实现的功能。
Visual C++6.0的主要特点:(1)自动化和宏功能。
(2)可以灵活地定制工具栏和菜单。
(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。
(4)支持Internet 连接。
(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。
(6)在工作区内可以包含多个并列的工程文件。
(7)可以在对话框中使用WizardBar 将程序同可视化元素联系起来。
(8)Find in File 命令支持两个独立的输出窗格,可以保存上一次搜索的结果。
这些新特性可以更好地利用Visual C++开发工具进行Windows 应用程序开发。
目录1、概述1.1、用C类环境设计程序的方法 (1)1.2、简要说明., (1)2、设计要求 (1)3、系统分析与模块设计 (2)3.1、算法设计3.2、数据结构3.3、模块设计3.4、模块枝干图4、程序流程图4.1、图形驱动 (3)4.2、开始画面 (4)4.3、显示食物 (5)4.4、蛇向前移动 (6)4.5、判蛇死 (7)4.6、吃到食物后处理 (8)4.7、判蛇反向移动 (9)4.8、游戏结束 (10)4.9、图形结束 (10)5、程序设计及源代码……………………………………………………10-176、运行结果分析…………………………………………………………18-207、实习心得 (21)贪吃蛇游戏的设计1 .概述1.1、用TC设计程序的方法首先应了解设计要求,然后按照功能设计模块,每个模块完成特定的功能,要使模块间的耦合性小,内聚性高;设计模块是相当重要的一个环节。
贪吃蛇游戏的开发报告

基于VC#.NET的贪吃蛇游戏的开发与设计目录1.实验目的 (3)2.实验任务与要求 (3)2.1实验内容 (3)2.2实验要求 (3)2.3实验环境 (3)3.设计方案 (3)3.1程序功能 (4)3.2设计思想 (4)3.3设计总体流程图 (4)3.4设计的具体实现 (4)4.程序测试 (15)4.1测试内容与结果 (15)4.2程序运行效果图 (17)5.实验总结 (17)参考文献 (17)附录 (18)附录A:主要源程序 (18)附录B:软件使用说明书 (23)一、实验目的(1)复习、巩固VC#.NET的基础知识,进一步加深对VC#.NET技术的理解和掌握;(2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
(3)培养学生在项目开发中团队合作精神、创新意识及能力二、实验任务与要求(1)实验内容贪吃蛇游戏开发,首先它可以为大家提供一种当前比较流行的休闲小游戏。
贪吃蛇游戏开发的最后一部分就是游戏的模块划分,根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、暂停游戏以及停止游戏,游戏设置(蛇的颜色、食物的颜色),游戏结束时的积分。
(2)实验要求●对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;●系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面;●说明书、流程图要清楚;●记录设计情况(备查,也为编写设计说明书作好准备);(3)实验环境WindowsXP操作系统,2005开发环境。
三、设计方案(1)程序功能一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键或A,D,W,S控制蛇向上下左右四个方向移动,蛇头撞到食物,则食物被吃掉,蛇身体长一节,同时记1分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或蛇头撞倒自己身体游戏结束。
JAVA开放性实验报告贪吃蛇

JAVA开放性实验报告贪吃蛇实验目的:本实验旨在利用Java语言实现一个经典的贪吃蛇游戏,通过实践提升对面向对象程序设计的理解和应用能力,加深对Java语言的熟练程度,并提高解决问题的能力和编程实践经验。
实验内容:1.设计游戏界面:通过Java中的Swing库实现游戏窗口的设计,包括游戏区域、游戏开始按钮、得分显示等。
2.实现游戏逻辑:设计贪吃蛇的移动规则,食物的生成和吃掉判定,碰撞检测等游戏逻辑。
同时实现游戏的主循环,控制游戏的进行。
3.实现键盘控制:通过监听键盘事件,实现玩家控制贪吃蛇的移动方向。
4.设计游戏机制:设置游戏的难度等级,增加贪吃蛇的移动速度、食物生成间隔等参数,使游戏更具挑战性。
5.设计游戏结束逻辑:当贪吃蛇头碰到墙壁或自身时,游戏结束并显示得分。
玩家可以选择重新开始游戏或退出。
实验步骤:1.设计游戏界面:创建一个JFrame窗口,在窗口中添加游戏画布,开始按钮和得分显示等组件。
2.实现游戏逻辑:设计Snake类和Food类,表示贪吃蛇和食物。
通过ArrayList存储贪吃蛇的身体节点,并实现移动、吃食物等方法。
3.实现键盘控制:通过实现KeyListener接口来监听键盘事件,根据按键控制贪吃蛇的移动方向。
4.设计游戏机制:设置贪吃蛇的移动速度、食物生成间隔等参数,根据难度级别逐步增加,使游戏更具挑战性。
5.设计游戏结束逻辑:当贪吃蛇头碰到墙壁或自身时,游戏结束并显示得分。
提供重新开始游戏和退出游戏的选项。
实验结果:经过实验设计和编码实现,成功完成了Java贪吃蛇游戏的开发。
游戏界面美观,操作流畅,游戏逻辑完整,玩家能够通过控制贪吃蛇吃到食物并获得得分。
随着游戏的进行,贪吃蛇会不断变长,玩家需要避开障碍,控制蛇头移动,体验游戏的乐趣和挑战。
实验总结:通过本次实验,我深入学习了Java语言的面向对象编程思想和应用,掌握了Swing库的使用方法,加深了对Java语言的理解和应用。
贪吃蛇报告完整版

贪吃蛇报告完整版课程设计基础课程设计贪吃蛇游戏设计院系:,,,,,,,,,,,班级:,,,,,,,,,,,姓名:,,,,,,,,,,,合作者:,,,,,,,,,,,指导教师:,,,,,,,,,,,时间 _____年____月____日课程设计课程设计目录1(1概述 ..................................................................... ................................错误~未定义书签。
1.1.1研究的背景与意义 ..................................................................... ...错误~未定义书签。
1.1.2 设计的任务和需要的知识点...................................................错误~未定义书签。
1. 生成设计主要完成的任务 ......................................................错误~未定义书签。
2. 需要掌握和应用的知识点 ......................................................错误~未定义书签。
1.1.3 具体完成的设计内容.................................................................错误~未定义书签。
1.2需求分析...................................................................... ...........................错误~未定义书签。
1.2.1 功能需求 ..................................................................... .................错误~未定义书签。
贪吃蛇的实训报告

一、实训目的本次实训旨在通过设计并实现贪吃蛇游戏,巩固和加深学生对C语言程序设计的基本知识,提高学生的编程能力和实际动手操作能力。
通过实训,使学生能够熟练掌握C语言编程技巧,理解程序设计的基本思想和流程,同时培养学生的团队协作和问题解决能力。
二、实训内容1. 游戏规则贪吃蛇是一款经典的电脑游戏,玩家通过键盘控制蛇在游戏区域中移动,吃掉随机出现的食物。
蛇在吃掉食物后,长度会增加,得分增加。
如果蛇头撞到墙壁或自己的身体,游戏结束。
2. 游戏界面游戏界面由一个矩形区域组成,代表游戏区域。
蛇用一系列方块表示,食物用不同的颜色表示。
游戏开始时,蛇的长度为3,随机生成食物。
游戏过程中,蛇会根据玩家的输入移动。
3. 游戏逻辑(1)初始化:设置游戏区域大小、蛇的初始位置和方向、食物的初始位置等。
(2)游戏循环:不断检测玩家输入,更新蛇的位置,判断蛇是否吃到食物、撞到墙壁或自己的身体。
(3)游戏结束:当蛇撞到墙壁或自己的身体时,游戏结束。
4. 程序设计(1)数据结构:定义蛇、食物和游戏区域的数据结构。
(2)函数设计:设计初始化函数、移动函数、判断是否吃到食物函数、判断是否撞到墙壁或自己的身体函数等。
(3)主函数:调用相关函数,实现游戏循环。
三、实训过程1. 设计阶段首先,根据游戏规则和界面设计,确定游戏的数据结构和函数。
然后,编写程序代码,实现游戏的基本功能。
2. 编码阶段根据设计阶段的设计,使用C语言编写程序代码。
在编写过程中,注意代码的可读性和可维护性。
3. 调试阶段在编写代码过程中,不断调试程序,修复出现的错误。
调试过程中,注意观察程序运行情况,分析问题原因,并找出解决方案。
4. 测试阶段完成程序编写后,进行测试,确保程序能够正常运行。
测试过程中,注意观察游戏效果,确保游戏规则和界面设计符合预期。
四、实训成果通过本次实训,成功设计并实现了贪吃蛇游戏。
游戏运行稳定,功能完整,达到了实训目的。
五、实训心得1. 理解程序设计的基本思想和流程,掌握C语言编程技巧。
贪吃蛇总结报告

贪吃蛇设计综合实验总结报告课程名称:程序设计实践选题名称:贪吃蛇小组长姓名:方娟 200911211056小组成员姓名:邹甜 200911211004杜家萱 200911211066任课老师:伊乾报告递交时间:2009.6.9一系统功能说明贪食蛇游戏是一个深受人们喜爱的游戏:一条蛇在密闭的围墙内,在围墙内出现食物,通过按键控制蛇向上下左右四个方向移动,蛇撞到食物,则食物被吃掉,蛇的身体增加一节。
如果蛇在移动的过程中,撞到墙壁或身体的交叉(蛇头撞到自己的身体)游戏结束。
现要求利用Turbo C2.0来实现该游戏。
功能要求如下:一、基本功能1.提供一个图形模式下的界面。
2.开始游戏:空格键或回车键;退出游戏:Esc键。
3.支持用键盘的方向键来控制蛇的移动,蛇可以向上、下、左、右四个方向移动。
4.当蛇头碰到食物时,食物被吃掉,蛇的身体增长一节。
5.初始场景内随即出现1个食物,当食物被吃掉时,再随机出现一个食物。
6.要有记分机制,没吃掉一个食物,增加相应的分数。
7.蛇碰到墙壁或是自己身体的一部分则游戏结束。
二、高级功能1.暂停功能:能随时通过按键来暂停游戏,再按一次则继续游戏。
2.速度调节功能:当分数达到某个值后,对蛇的移动速度进行一定的提升,但会有一个速度上限。
3.奖励机制:增加另一种的奖励食物,蛇吃到该种食物后蛇的身体减少一节(最短不能少于2节),但不增加分数。
该种食物的颜色要区别与普通食物的颜色。
奖励食物有时间限制,在一定时间内没有吃掉则会消失。
4.音效功能:在游戏开始、吃掉食物、撞墙、撞到自己时提供不同的音效。
二程序结构(2)重要数据说明基本思路:首先设计主界面,主界面是一个密封的围墙,并在屏幕最右面留一部分用来显示分数、计时等其他信息。
围墙直接画一个矩形来表示,四面围成密闭的矩形来作为围墙。
接着是初始化蛇与食物的位置并将他们用图形表示出来。
然后进行一个循环,将蛇按当前的方向移动,并处理键盘的方向按键信息,调整蛇的移动方向。
《贪吃蛇游戏课程设计》报告

贪吃蛇游戏程序设计一、课程设计任务贪吃蛇小游戏程序设计二、设计要求通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。
(1).收集资料,分析课题,分解问题,形成总体设计思路;(2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;(4).完成课程设计报告,并进行答辩三、需求分析3.1、程序功能贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
3.2、设计思想程序关键在于表示蛇的图形及蛇的移动。
用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。
移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏 的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将 蛇的最后一节用背景色覆盖。
食物的出现与消失也是画矩形块和覆盖矩形块。
为了便于 理解,定义两个结构体:食物与蛇。
3.3、流程图蛇吃到食?YN蛇死亡?继续?N开始初始化界面和蛇身放置食物蛇开始运动蛇长大退出界面NYY 游戏者按键选择四、设计的具体实现(1)函数定义函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用#define N200#define M200#include"graphics.h"#include<stdlib.h>#include<stdio.h>#include<string.h>#include<iostream.h>#include<dos.h>#include<conio.h>#include <windows.h>#define LEFT 97//A#define RIGHT100//D#define DOWN115//S#define UP119//W#define Esc0x011bint i,key;int score=0;int gamespeed=250;//游戏速度可根据实际情况自行调整struct Food{(2)主函数main( )int x;//食物的横坐标int y;//食物的纵坐标int yes;//判断是否要出现食物的变量}food;//食物的结构体struct Snake{int x[M];int y[M];int node;//蛇的节数int direction;//蛇的移动方向int life;//蛇的生命,0表示活着,1表示死亡}snake;void Init();//图形驱动void Close();//图形结束void DrawK();//开始画面void GamePlay();//玩游戏的具体过程void GameOver();//游戏结束void PrScore();//输出成绩主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序void main()//主函数{Init();//图形驱动DrawK();//开始画面GamePlay();//玩游戏的具体过程Close();//图形结束}void Init()//图形驱动{int gd=DETECT,gm;initgraph(&gd,&gm," ");/*此处为turboc的路径,读者可以根据自己的电脑而改*/cleardevice();}(3)画界面函数DrawK()主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度均的矩形方块,表示围墙,为了醒目,设置为白色。
贪吃蛇设计报告

目录1. 课题分析与方案选择 (3)2.总体设计 (4)2.1 理论分析 (5)2.1.1 算法设计分析 (5)2.1.2 数据结构分析 (8)2.1.1 流程框图 (9)2.2 代码编写 (9)2.2.1 工具类 (9)2.2.2 载入类 (11)2.2.3 蛇类 (12)2.2.4 食物类 (13)2.2.5 地图类 (14)2.2.6 运行类 (15)3. 游戏测试 (15)3.1 载入界面测试 (16)3.2 简单模式测试 (16)3.3 普通模式测试 (16)3.4 困难模式测试 (17)4. 问题分析与解决 (19)5. 总结 (20)摘要贪吃蛇游戏作为一款简单游戏,是手机游戏的代表,在十多年前风靡全世界,时至今日,贪吃蛇游戏任然活跃的网络的各个角落。
本次编写的便是一款经典的贪吃蛇游戏,任务确定为实现贪吃蛇游戏过程。
作为游戏的组成,通过必要的图形,文字界面来引导游戏者参与到这款游戏中,更有效的吸引游戏者的兴趣,为了拓展游戏者对高分和刺激的追求,设定各种难度的关卡也成为了游戏的必需品,贪吃蛇游戏的编写共有八个类,其中,主要包括游戏的控制与游戏界面的建立两个方面,对于前者,需要通过控制台来获取输入,而对于后者,要求应用合适的数据结构和算法,通过编写本次课程设计,对理论知识与实际作品之间的关系有了更加深刻影响。
关键字:贪吃蛇,界面,难度控制,数据结构1 课题析与方案选择1.1课题分析本次设计为贪吃蛇游戏,一款游戏就必须要与使用者拥有良好的交互界面,使用C++对DOS界面显示的处理需要细致和精细,在游戏过程中,那么就会有游戏载入界面,游戏进行界面,和结束界面,在输入方面,这款游戏采用上下左右四个按键进行控制,需要用到回车键进行选择确定,而游戏的目标,则是获取更高分数,挑战更高难度。
功能设计框图1.2方案选择1.1.1软件选择本次编写软件为CODEBLOCKS 16.011.1.2设计选择通过分析,将游戏分为输入,游戏运行,输出三大部分,对于每个部分需要用不同的类进行实现和联系,大概将其分为五个类,分别为工具类,载入类,蛇体类,游戏界面类和运行类。
小游戏贪吃蛇课程设计报告

Java小游戏贪吃蛇课程设计报告
使用键盘事件 监听器实现蛇 的移动和转向
Java小游戏贪吃蛇课程设计报告
通过碰撞检测类实现碰 撞和游戏结束条件
Java小游戏贪吃蛇课程设计报告
使用Java Timer类实现分数和时间的更新
在实现过程中,我们遇到了以下问题和解决方案
在本次课程设计中,我们选择了一个经典的小游戏——贪吃蛇。贪吃蛇是一款简单而有趣 的游戏,玩家需要控制一条蛇在屏幕上移动,吃掉食物并避免撞到墙壁或自己的尾巴 在开始设计之前,我们首先对游戏进行了需求分析。我们需要实现以下功能
Java小游戏贪吃蛇课程设计报告
创建游戏窗口和背景
Java小游戏贪吃蛇课程设计报告
Java小游戏贪吃蛇 课程设计报告
-
1 创建游戏窗口和背景 2 生成蛇和食物 3 实现蛇的移动和转向 4 检测碰撞和游戏结束条件 5 分数和时间的显示 6 使用随机数生成器生成蛇和食物的位置 7 使用键盘事件监听器实现蛇的移动和转向 8 通过碰撞检测类实现碰撞和游戏结束条件
Java小游戏贪吃蛇课程设计报告
分数和时间显示不准确:解决方案:使用Java Timer类定期更新分数和时间,确保它 们与游戏进度同步
Java小游戏贪吃蛇课程设计报告
r
xxxxx
最终,我们成功实现了贪吃蛇游戏的基 本功能,包括创建游戏窗口、生成蛇和 食物、实现蛇的移动和转向、检测碰撞 和游戏结束条件以及分数和时间的显示
同时,我们还优化了游戏的性能和 用户体验,使其更加流畅和有趣
生成蛇和食物
Java小游戏贪吃蛇课程设计报告
Java小游戏贪吃蛇课程设计报告
检测碰撞和游 戏结束条件
Java小游戏贪吃蛇课程设计报告
贪吃蛇实验报告

贪吃蛇实验报告1. 引言贪吃蛇是一种经典的游戏,通过控制蛇的移动方向,吃掉食物来增长身体长度。
在本实验中,我们将实现一个贪吃蛇游戏,并对不同算法进行比较,以探讨最优的游戏策略。
2. 实验目的本实验的目的有以下几点:1.实现一个基于命令行的贪吃蛇游戏。
2.探讨不同的贪吃蛇算法,并比较其效果优劣。
3.分析贪吃蛇游戏的设计思路和实现细节。
3. 实验方法3.1 游戏实现使用Python编程语言,利用面向对象的思想实现贪吃蛇游戏。
游戏主要包括蛇的移动、食物随机生成、蛇身体增长等基本功能。
3.2 算法比较我们将比较以下两种贪吃蛇算法:1.贪心算法:每一步都选择离食物最近的方向。
2.最短路径算法:使用最短路径算法计算出到达食物的最短路径,并选择下一步的移动方向。
4. 实验结果在实际运行贪吃蛇游戏时,我们进行了以下几个实验:4.1 实验一:贪心算法在贪心算法中,蛇会选择离食物最近的方向进行移动。
我们对贪心算法进行了100次实验,并记录了每次游戏的得分。
结果显示,在100次实验中,贪心算法的平均得分为200。
4.2 实验二:最短路径算法最短路径算法使用最短路径计算来选择下一步的移动方向。
我们同样进行了100次实验,并记录了每次游戏的得分。
结果显示,在100次实验中,最短路径算法的平均得分为350。
5. 结论通过对贪心算法和最短路径算法的比较,我们可以得出以下结论:1.最短路径算法相对于贪心算法更加优越,其平均得分更高。
2.由于最短路径算法的计算复杂度较高,可能导致游戏运行速度变慢。
在进一步研究中,可以尝试更复杂的贪吃蛇算法,并优化算法的实现,以提高游戏的表现和用户体验。
6. 参考文献1.Python官方文档2.《算法导论》以上是本次贪吃蛇实验的报告,通过实验我们得出了最短路径算法在贪吃蛇游戏中的优越性,并提出了进一步研究的方向。
贪吃蛇代码实训心得报告

贪吃蛇代码实训心得报告前言贪吃蛇是一款经典的游戏,其简单的玩法和上瘾的乐趣一直深受大众喜爱。
在代码实训中,我选择了贪吃蛇作为我的项目,通过编写贪吃蛇的代码,我在实训过程中收获了很多知识和经验,本报告旨在总结我在实训中的收获和心得体会。
项目介绍我的贪吃蛇项目基于Python语言开发,通过使用Pygame库来实现游戏的图形界面。
在实现贪吃蛇游戏的过程中,我主要实现了以下几个功能:1. 绘制游戏界面2. 控制蛇的移动3. 检测蛇与食物的碰撞4. 判断游戏结束5. 计分系统收获与体会代码实践能力的提升通过编写贪吃蛇的代码,我对Python语言的理解更加深入了。
熟悉Python的语法和特性,对于编写代码来说是非常重要的。
通过实践,我掌握了Python程序的基本结构、函数的定义和使用、条件和循环语句等基础知识,并且能够灵活运用这些知识来解决实际问题。
另外,在代码实践中,我也意识到了代码规范的重要性。
良好的代码规范可以提高代码的可读性和可维护性,在开发过程中能够更加高效地协同工作。
因此,我在编写代码的过程中注意了命名规范、缩进格式以及注释的添加,以保证代码的可读性和可维护性。
协作能力的培养在实训中,我与同伴合作完成了这个项目。
通过合作,我学会了与人沟通协作的重要性。
我们合理分工,明确任务目标,并尽力去协调和解决问题。
通过充分的沟通和协作,我们相互之间可以更好地理解彼此的想法和意图,为项目的顺利完成做出了积极的贡献。
在项目中,通过与同伴一起编写代码,我学到了如何利用版本控制工具进行代码管理。
我们使用Git进行代码的版本管理,这样可以方便地和同伴分享和协同开发代码。
掌握了这一技能,对于今后的工作和学习都具有重要的意义。
解决问题的能力提升在项目开发过程中,我遇到了很多问题,例如蛇如何移动、如何检测碰撞等等。
通过仔细研究问题、查找资料、请教同伴和老师,我逐渐掌握了解决问题的方法和技巧。
我学会了如何分析问题、找出问题的根源,并提出解决问题的方案。
贪吃蛇小游戏实验报告[

- 0 -软件设计报告设计题目: 贪吃蛇 目录一. 需求分析 二. 概要设计 三. 详细设计四. 心得体会一. 需求分析1.1关于题目 1.1.1题目要求(1)利用MicrosoftVisualC++制作一个贪吃蛇的小游戏, 要求:(2)应用MFC 单文档制作(3)能够记录游戏成绩学 院:专业班级:学生姓名:学生学号:指导教师:提交时间:成 绩:(4)可根据玩家要求设置游戏速度(级别): 初级, 中级, 高级可以根据个人喜好更换背景图片, 食物图片, 障碍物图片, 结束图片等1.1.2选题背景贪吃蛇是家喻户晓的益智类小游戏, 选择这个题目一是为了将自己的所学知识加以运用, 二是一直以来贪吃蛇这个游戏就深深地吸引着我们, 它的制作方法对于以前的我们而言都是很神秘的。
我们希望通过自己的所学知识把它剖析开来, 真真正正的了解它的本质和精髓。
虽然我们的编程能力不是很强, 但是我们有信心, 在这次学习中我们将从实践和实际的项目中提高自己的编程能力。
因此我们选定了这个题目。
1.2关于编译软件本程序采用Microsoft Visual C++6.0的英文版本进行编译。
VisualC++6.0是Microsoft公司推出的基于Windows操作系统的可视化C++编程工具, 尽管Microsoft公司推出了.NET平台的集成开发环境, 但由于其良好的界面和可操作性, 加上支持标准C/C++规范, 但仍有相当多的编程人员使用VisualC++6.0进行应用系统的开发。
- 1 -1.3关于兼容性本程序经过调试, 可以在XP系统下编译运行, 也可以在Vista下运行, 界面稍有不同, 但不影响运行结果。
二. 概要设计2.1软件主要功能设计2.1.1程序结构根据分析, 贪吃蛇这个程序一共要实现如下几个功能, 包括游戏方面开始游戏、停止游戏, 设置游戏级别(速度), 设置图片等。
具体的程序结构如下面的图1-1所示。
- 2 -图2-1 贪吃蛇结构图2.1.2程序流程根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。
贪吃蛇游戏报告书

贪吃蛇游戏报告书青岛⼤学软件技术学院交互式游戏设计实践实训题⽬名称贪吃蛇姓名专业数字媒体艺术班级 10级3班指导教师解新峰2014 年 1 ⽉ 14 ⽇1⽬录第⼀章引⾔ (3)1.1选题背景 (3)1.2项⽬意义 (3)1.3开发技术 (3)1.3.1 Java语⾔简介 (3)1.3.3 Eclipse开发环境 (3)第⼆章贪吃蛇游戏概述 (5)2.1游戏分析 (5)2.1.1 游戏规则 (5)2.1.2 游戏玩法 (5)2.2算法分析 (5)2.3架构分析 (5)第三章贪吃蛇游戏的详细设计 (7)3.1游戏总体结构设计 (7)3.2 游戏运⾏图 (10)⼩结 (13)参考⽂献 (13)第⼀章引⾔1.1选题背景贪吃蛇是家喻户晓的益智类⼩游戏,选择这个题⽬⼀是为了将⾃⼰的所学知识加以运⽤,⼆是⼀直以来贪吃蛇这个游戏就深深地吸引着我,它的制作⽅法对于以前的我⽽⾔都是很神秘的。
我希望通过⾃⼰的所学知识把它剖析开来,真真正正的了解它的本质和精髓。
虽然我的编程能⼒不是很强,但是我有信⼼,在这次学习中我将从实践和实际的项⽬中提⾼⾃⼰的编程能⼒。
因此我选定了这个题⽬。
1.2项⽬意义游戏在设计⽅⾯应该本着⽅便、实⽤及娱乐性⾼的宗旨,在对界⾯进⾏设计的过程中,应始终坚持清晰明了,在性能⽅⾯应能够实现效率⾼,不易出错等优点。
游戏主界⾯应该⼒求美观,赏⼼悦⽬。
游戏控制模块应做到易懂、易操作,⽽且准确率⾼,不易出错。
1.3开发技术1.3.1 Java语⾔简介Java是⼀种简单易⽤的编程语⾔,它采⽤了⼀种虚拟机作为中间层来屏蔽平台差异,能够实现跨平台运⾏。
Java⽀持⾯向对象编程,有封装、继承、多态的特性,它还⽀持多线程,实现多个程序流程同时执⾏,完成不同任务。
1.3.2 Java语⾔的开发⼯具包JDKJDK(Java Development Kit)是Java语⾔的开发⼯具包,⼯具包⾥除了包含Java语⾔编译器、调试器以及演⽰程序以外,⼀般还会包含Java运⾏环境(Java Runtime Environment,JRE)。
VC++实现贪吃蛇的实验报告

题目:利用VC++实现贪吃蛇小游戏一、题目:利用VC++实现贪吃蛇小游戏利用VC++实现的贪吃蛇小游戏更加注重可视化。
一条蛇在封闭的围墙内,在围墙内会随机出现一个食物,通过键盘上的W S A D四个键控制它向上,下,左,右四个方向移动。
当蛇头撞到食物时表示将食物吃掉,这时蛇身增长一节,得分加一。
接着随机生成食物,等待被蛇吃掉。
如果在移动过程中撞到墙壁或者自己的身体,则游戏结束。
游戏过程中,可以在菜单中选择暂停或者结束游戏,对游戏进行暂停或者退出。
二、编程要点(或基本思路、算法分析与说明):本次游戏设计包含两大模块,一个模块是贪吃蛇游戏本身算法的设计,完成了贪吃蛇的食物产生,获取食物,蛇的移动等功能。
另一个模块是利用MFC完成贪吃蛇的可视化显示,产生了一个对话框,在对话框可以控制游戏及游戏的显示。
1.贪吃蛇游戏算法设计包括:<1>果实出现的设计思路:(1)采用随机数生成果实出现坐标(2)判断当前生成的果实是否在贪吃蛇身体范围内。
(3)如果在,重新生成直到不在为止。
如果不在,则把坐标位置返回给调用对象。
<2>贪吃蛇更新的算法设计(1)接收玩家按下的方向键消息,并保存到方向变量中。
(2)定义一个时间定时器,用来控制蛇运动的速度。
(3)当每次时间间隔到达时,则根据方向变量来更新贪吃蛇curr(即贪吃蛇身体)向量。
(4)判断curr向量的第一个元素中的坐标数据是否碰到边界或者蛇身,如果有,则游戏结束。
否则,进行下一步。
(5)判断curr向量的第一个元素中的坐标数据是否与当前果实重合,如果有,表示贪吃蛇已经吃到果实。
这时就向贪吃蛇curr向量添加一个元素,并重新生成一个果实。
(6)吃到食物后,得分会同步增加。
2.利用MFC完成贪吃蛇的可视化显示:首先初始对话框,完成游戏的整体框架的显示。
然后游戏玩家在菜单栏里选择开始,暂停,结束等,控制游戏状态。
游戏开始后,玩家通过键盘上的消息控制蛇的运动。
(完整word版)贪吃蛇实验报告.docx

(完整word版)贪吃蛇实验报告.docx《计算机程序设计》课程设计报告课题名称贪吃蛇游戏班级学号姓名指导教师设计时间至设计地点常熟理工学院计算机科学与工程学院常熟理工学院计算机科学与工程学院目录1需求分析 (1)2系统分析和设计 (1)2.1数据结构的设计和选择的理由 (1)2.2系统模块划分和模块结构 (2)2.3流程图 (2)2.4数据类型、全局变量和函数说明 (3)3程序测试和运行结果 (4)4课程报告小结 (5)4.1分数重叠显示 (5)4.2速度太快 (5)4.3食物可能出现在蛇身上 (5)附录 A :程序源代码 (6)《 C 程序设计》课程设计1 需求分析【阐述课程设计应该完成的功能】使用键盘的上下左右,来控制蛇的运动方向,ESC 键退出,并显示得分。
2系统分析和设计2.1 数据结构的设计和选择的理由本游戏中涉及的主要数据结构是如何表示运动的蛇、食物状态等问题。
2.1.1 从游戏参考画面中我们可以看到,贪吃蛇的身体是一节节的,由一个个大小相同的方块组成,那么我们可以用一个 (x,y) 坐标为左上角的、固定宽度的正方形来表示一节蛇身。
为表示连续的多节身体,那么我们可以采用数组(或链表,或线性表)等数据结构来表示。
下面以数组方式为例:struct Point {int x, y;}struct Point nodes[MAX_LENGTH];// 蛇身数组,MAX_LENGTH为最大蛇长贪吃蛇是在不断的运动的,我们研究蛇的运动可以发现这样的特点:1. 蛇头由键盘控制,键盘不操作时,保持原有方向运动;(用int direction; 表示 )2.运动时,蛇身后面一节移动到前面一节的位置。
当我们用nodes[0]表示蛇头的时候, nodes[1] 运动到 nodes[0]处; nodes[2] 运动到 nodes[1]处 ...。
3. 吃到一个食物以后,蛇身会增加一节。
即该数组中的有效数据个数加一。
贪食蛇游戏实习报告

贪吃蛇游戏开发一、需求分析1、该贪吃蛇设计主要具有吃食、暂停、开始以及重新开始游戏。
2、主要目标:本游戏实现贪吃蛇在制定空间去吃随机出现的方块。
游戏可以暂停,如不满意这一次游戏的成果还能重新开始游戏。
二、项目设计1、流程设计程序流程图2、游戏具体设计:(1) 蛇移动的实现蛇的移动方向主要受头结点控制,所以每次画蛇时只要把前一结点的值赋给后一节点即可。
当蛇头的移动方向向右时,y 值不变x 的值不断增加。
当蛇头的移动方向向左时,y 值不变x 的值不断减少。
当蛇头的移动方向向下时,y 值增加x 的值不变。
当蛇头的移动方向向上时,y 值减小x 的值不变。
(2) 蛇死亡的判断当蛇头的值与蛇身或与墙的值相等时,蛇即算死亡.(3)蛇到达边框时从另一端出现和传送的实现当蛇头的x 或y 值达到边框的最大或最小位置时相应的给x 或y 赋以边框的最小或最大值以实现当蛇到达边框时能从另一端出来,同理当蛇头的x,y 值等于传送点位置的值时将蛇头x,y 的值赋以被传送到位置的值,这样将实现蛇的传送功能。
三、项目实现①蛇身颜色、最大长度及速度int speed;//设置蛇的速度int maxLen;//设置蛇的最大长度②随机生成食物产生随机种子:qsrand(QTime().currentTime().msec());定义食物的坐标、形状及颜色:int mx = (qrand()%(w/20))*20;int my = (qrand()%(h/20))*20;food = new QLabel(this);food->move(mx,my);food->resize(20,20);//食物大小food->setAutoFillBackground(true);//设置食物自动填充背景颜色food->setFrameShape(QFrame::Box);//设置形状food->setFrameShadow(QFrame::Sunken);food->setPalette(QPalette(QColor(qrand()%255,qrand()%110,qrand()%255)));//改变调色板的颜色return food;③方向控制及按键事件处理方向控制:switch(d){case d_up:nheady-=speed;break;case d_down:nheady+=speed;break;case d_left:nheadx-=speed;break;case d_right:nheadx+=speed;break;}按键事件处理:void snake::keyPressEvent(QKeyEvent *f){if(f->key()==Qt::Key_Up){d=d_up;}else if(f->key()==Qt::Key_Down){d=d_down;}else if(f->key()==Qt::Key_Left){d=d_left;}else if(f->key()==Qt::Key_Right){d=d_right;}}④食物的显示与蛇吃食物食物显示:data.push_back(getFood());//将吃到的食物添加在蛇身之后timer = new QTimer();//初始化时钟timer->setInterval(400);//设置时钟周期timer->start();connect(timer,SIGNAL(timeout()),this,SLOT(move()));//传递信号food = getFood();food->show();蛇吃食物:if((nheadx==foodx)&&(nheady==foody)){data.push_back(food);food = getFood();food->show();}游戏截图1游戏截图2游戏截图3游戏截图4⑤游戏结束条件if(data.size()>=10){QMessageBox msg(this);msg.setText("game over!");msg.setStandardButtons(QMessageBox::Yes|QMessageBox::No);msg.show();if(msg.exec()==QMessageBox::Yes){this->close();}}四、总结经过10天的培训,让我进一步熟悉了Linux系统下命令的使用、文件的编写与调试,更熟悉了以前所学的C++语言,让我对我所学习的计算机更加了解喜欢,也更加希望自己能学好计算机方面的设计,去设计更多有意思的游戏。
贪吃蛇游戏实验报告

*****************实验报告实验名称: 网络编程基础实训教程(贪吃蛇)指导教师:姓名:学号:班级:提交日期:1.实验目的通过开发一款贪吃蛇游戏程序, 熟练掌握C#编程语言、和面向对象程序设计方法, 独立完成一个游戏程序的开发。
2.实验题目使用C#编程语言, 开发一款贪吃蛇游戏, 如下图所示。
3.功能描述a)游戏场地是一片矩形区域的草坪。
b)一条蛇由蛇头和蛇身组成。
c)当游戏开始之后, 草坪中出现一颗豆和一条蛇, 并且蛇不停地移动, 蛇移动方向与蛇头一致。
d)当游戏暂停之后, 蛇停止移动。
e)当蛇移动时, 玩家使用“↑”、“↓”、“←”和“→”四个键控制蛇的移动方向。
f)当蛇头与豆的位置重合时, 豆被蛇吃掉, 同时在草坪中再生成一颗新的豆, 蛇身增加一节。
当蛇头碰到蛇身时, 则咬断蛇身, 后半部分的蛇身消失。
当蛇头碰到草坪四周时, 蛇立即毙命, 游戏结束。
4.需求分析根据功能描述可知, 贪吃蛇游戏的系统结构图如下所示。
1)定义数据字典如下:2)草坪(Lawn): 草坪是贪吃蛇游戏的场地。
豆和蛇只能存在于草坪范围之内。
草坪具有大小和颜色等属性。
蛇(Snake):在贪吃蛇游戏中, 蛇由若干节组成, 其中第一节是蛇头, 其余是蛇身。
在游戏过程中, 有且仅有一条蛇, 并且蛇在不停地移动。
如果蛇吃了豆, 则蛇生长一节。
如果蛇头碰到蛇身, 则咬断蛇身, 后半部分的蛇身消失。
如果蛇头离开草坪, 则蛇死亡游戏结束。
蛇具有长度、颜色、运动方向、每一节的位置等属性。
豆(Bean):在贪吃蛇游戏中, 豆是蛇的食物。
在游戏过程中, 有且仅有一颗豆。
如果蛇吃了豆, 则重新生成一颗豆。
豆具有位置、大小和颜色等属性。
5.设计说明根据需求分析可知, Snake的每一节都有位置和大小等属性。
而Bean也具有这两个属性。
抽象出二者的共同特征, 抽象出一般类Block, 用于描述一个块。
Block派生出Bean和SnakeBlock两个类, 其中SnakeBlock类用于描述蛇的一节。
(完整word版)贪吃蛇实验报告

《计算机程序设计》课程设计报告课题名称贪吃蛇游戏班级学号姓名指导教师设计时间至设计地点常熟理工学院计算机科学与工程学院常熟理工学院计算机科学与工程学院目录1需求解析 (1)2系统解析和设计 (1)数据构造的设计和选择的原因 (1)系统模块区分和模块构造 (2)流程图 (2)数据种类、全局变量和函数说明 (3)3程序测试和运转结果 (4)4课程报告小结 (5)分数重叠显示 (5)速度太快 (5)食品可能出此刻蛇身上 (5)附录 A :程序源代码 (6)《 C 程序设计》课程设计1 需求解析【论述课程设计应当达成的功能】使用键盘的上下左右,来控制蛇的运动方向,ESC 键退出,并显示得分。
2系统解析和设计2.1 数据构造的设计和选择的原因本游戏中波及的主要数据构造是怎样表示运动的蛇、食品状态等问题。
2.1.1 从游戏参照画面中我们能够看到,贪吃蛇的身体是一节节的,由一个个大小同样的方块构成,那么我们能够用一个 (x,y) 坐标为左上角的、固定宽度的正方形来表示一节蛇身。
为表示连续的多节身体,那么我们能够采纳数组(或链表,或线性表)等数据构造来表示。
下边以数组方式为例:struct Point {int x, y;}struct Point nodes[MAX_LENGTH];// 蛇身数组, MAX_LENGTH为最大蛇长贪吃蛇是在不停的运动的,我们研究蛇的运动能够发现这样的特色:1. 蛇头由键盘控制,键盘不操作时,保持原有方向运动;(用 int direction; 表示 )2.运动时,蛇身后边一节挪动到前面一节的地点。
当我们用 nodes[0]表示蛇头的时候, nodes[1] 运动到 nodes[0]处; nodes[2] 运动到 nodes[1]处 ...。
3. 吃到一个食品此后,蛇身会增添一节。
即该数组中的有效数据个数加一。
(用 int length;表示 )依据上边的状况,我们能够设计蛇的数据构造以下:struct Snake {struct Point nodes[MAX_LENGTH];// 蛇身数组,保留每节蛇身的坐标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.3
开始游戏后的重点是如何用键盘来控制蛇的移动并传递到函数中去以及判断蛇是否死亡。
如图3-3所示。
(1)左(2)下(3)右(4)上
图3-3键盘的上下左右键的效果
其次来解释一下如何判断蛇的死亡,由于蛇的身体是由点坐标数组构成的,因此判断蛇是否死亡其本质就是判断蛇头的坐标是否与游戏边框相同或者蛇头坐标是否与蛇自己的身体相同。
if(table.GetSnake()->IsHeadTouchBody(table.GetSnake()->GetPos()[0].x,table.GetSnake()->GetPos()[0].y) &&
table.GetSnake()->GetStateArray()[0] != M_NONE)
void SheelDraw(HDC hdc)//绘制墙,白色底平面,绘制分数板,绘制分数打印墙
蛇的函数:
CSnake::CSnake(int x_pos,int y_pos,int len)//蛇的构造函数
int CSnake::ChangeDirect(MoveState d)//改变蛇的运动方向
{
uGameState = GAME_STATE_END;
::KillTimer(hWnd,0);
}
DrawGame();
}
死亡界面
图3-4贪吃蛇的死亡
3.2.5
这里的游戏设置主要是指游戏的等级的控制。前面在变量声明中已经看到,关于这三个量,我们已经予以了定义,只需要在按下相应键盘或鼠标消息的时候,将变量值进行改变,再利用这些值控制相应功能的运行。
1.3
本程序经过调试,可以在XP系统下编译运行,也可以在Vista下运行,界面稍有不同,但不影响运行结果。
二
2.1
2.1.1
根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、停止游戏,设置游戏级别(速度),设置图片等。具体的程序结构如下面的图1-1所示。
图2-1贪吃蛇结构图
2.1.2
3.2
3.2.1
贪吃蛇游戏的游戏界面包括背景图片、蛇身体的绘制、蛇移动范围的绘制等等。其中贪吃蛇的身体用什么方法绘制,才可以使得其在游戏过程中可以实现“吃”的功能是很重要的。因此在游戏界面的初始绘制时就必须考虑到游戏时可能遇到的问题。
导入位图以及菜单工具条后,游戏开始一段时间后(XP系统下)的界面显示如图3-1所示
}
其中在构造函数CYuShuoView::CYuShuoView()中已经将m_yseffectctrl的初值设置为1。
四
4.1
程序开始运行后会进入游戏界面,但是不会立即进行游戏,单击菜单的“开始”才会开始游戏。在游戏开始前,玩家可以根据自己的喜好,通过菜单或者工具栏设置游戏等级等。
case IDM_PRIMARY:
g_iTime = 50;
g_iCount = 1;
iScore = 0;
g_NoFood = TRUE;
g_hBlock = TRUE;
StartGame();
g_hTimer = SetTimer(hWnd,0,g_iTime,NULL);
}
break;
case IDM_HARD:
{
if(g_hTimer != 0)
void CSnake::Move()//保存蛇身体各部分的形状、根据新旧状态特性取正确的状态
void CSnake::AddBody(int n)//保存位置、保存蛇的状态信息、创建并初始化增长后的蛇的存储数据空间
void CSnake::SetHeadPos(int x,int y)//设置蛇头的位置
{
KillTimer(hWnd,0);
}
g_bStart = TRUE;
g_bKey = TRUE;
g_bMove = false;
g_iTime = 50;
g_iCount = 2;
iScore = 0;
g_NoFood = TRUE;
g_hBlock = TRUE;
StartGame();
g_hTimer = SetTimer(hWnd,0,g_iTime,NULL);
if(table.GetData(table.GetSnake()->GetPos()[0].x,table.GetSnake()->GetPos()[0].y) ==TB_STATE_SBLOCK)
{
uGameState = GAME_STATE_END;
::KillTimer(hWnd,0);
}
2.在链接过程中,出现了nonincremental update requires all .SBRfiles的错误提示,经上网搜索后,得到的解决方法是:将debuge文件夹删除后再重新编译链接一次,问题解决。
}
break;
四.心得体会
错误调试与分析
1.在编写代码的过程中,我们遇到了一个问题,在函数int CSnake::ChangeDirect(MoveState d)中,开始我们是把此函数写成一个空函数,但是出现了问题,但是改成了Int返回值后,问题不再出现,原因是ChangeDirect在定义是就定义为了一个int型的,所以若在此处用空的返回值,则不匹配。
bool CTable::AddFood(int x,int y)//添加食物
bool CTable::ClearFood(int x,int y)//清除食物
CSnake *CTable::GetSnake()//获得蛇
int CTable::GetData(int x,int y)//活得数据
void CTable::SnakeMove()//蛇的运动
根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。贪吃蛇的内容主要包括:游戏开始,随机出现食物。
图2-2贪吃蛇流程图
三
3.1
根据程序的结构,将贪吃蛇需要实现的功能细化成为相应的函数。
3.1.1
主函数:
void StartGame()//开始游戏
void GameAreaDraw(HDC hdc)//绘制游戏空间,包括空地,水果和毒果等
{
if(g_hTimer != 0)
{
KillTimer(hWnd,0);
}
g_bStart = TRUE;
g_bKey = TRUE;
g_bMove = false;
g_iTime = 100;
g_iCount = 1;
iScore = 0;
g_NoFood = TRUE;
g_hBlock = TRUE;
(1)应用MFC单文档制作
(2)能够记录游戏成绩
(3)可根据玩家要求设置游戏速度(级别):初级,中级,高级
(4)可以根据个人喜好更换背景图片,食物图片,障碍物图片,结束图片等
1.1.2
贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我们,它的制作方法对于以前的我们而言都是很神秘的。我们希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我们的编程能力不是很强,但是我们有信心,在这次学习中我们将从实践和实际的项目中提高自己的编程能力。因此我们选定了这个题目。
StartGame();
g_hTimer = SetTimer(hWnd,0,g_iTime,NULL);
}
break;
case IDM_MIDDLE:
{
if(g_hTimer != 0)
{
KillTimer(hWnd,0);
}
g_bStart = TRUE;
g_bKey = TRUE;
g_bMove = false;
{
//刚开始设置为首尾在一起,故由此判断,要第二次与身体碰撞才失败
uGameState = GAME_STATE_END;
::KillTimer(hWnd,0);
}
if(table.GetData(table.GetSnake()->GetPos()[0].x,table.GetSnake()->GetPos()[0].y) == TB_STATE_BLOCK)
软件设计报告
学院:
华北电力大学科技学院
专业班级:
软件10K1
学生姓名:
张飞
学生学号:
101909020122
指导教师:
乔玲玲
提交时间:
成绩:
设计题目:贪吃蛇
目录
一.需求分析
二.概要设计
三.详设计
四.心得体会
一.需求分析
1.1
1.1.1
利用MicrosoftVisual C++制作一个贪吃蛇的小游戏,要求:
图3-1游戏初始界面显示
3.2.2
确定用点数组存储贪吃蛇以后,贪吃蛇的食物如何达到随机出现,并且能够按照网格式与蛇头无偏差相接就是一个亟待解决的问题。
随机出现应采用rand()函数来实现,而食物与蛇头无偏差相接则利用坐标来解决。再由食物坐标(X,Y)与蛇头坐标是否相同判断蛇是否“吃”到了食物。
在下面的图3-2中,我们可以看到,蛇的身体是与出现的食物在一条直线上的,完全可以达到相接的目的。
void CSnake::Initial()//蛇的初始化(坐标位置、运动状态、位图显示状态
桌面函数:
CTable::CTable()//桌面的构造函数
void CTable::InitialTable(int w,int h)//初始化桌面函数
bool CTable::AddBlock(int x,int y)//添加障碍物