贪吃蛇设计说明书Word文档下载推荐.docx
- 文档编号:8012744
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:41
- 大小:1.24MB
贪吃蛇设计说明书Word文档下载推荐.docx
《贪吃蛇设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《贪吃蛇设计说明书Word文档下载推荐.docx(41页珍藏版)》请在冰点文库上搜索。
2.基本要求
1.要求利用面向对象的方法以及C#程序设计语言来完成该系统的设计;
2.要求在设计的过程中,建立清晰的类的层次;
3.在系统中建立相关的类,每个类中都要有各自的属性和方法;
4.程序运行结果正确,操作方面,界面美观,逻辑层次清楚,程序结构合理,文档规范清晰。
3.主要功能
该系统具备以下功能:
控制蛇运动方向:
用键盘上的↑、↓、←、→控制蛇的运动方向。
当蛇向一个方向运动时,它的反向键被锁定。
不能通过连续按住某个方向键而加快蛇的运动。
若在游戏中,蛇头碰了墙或是自己的身体,则游戏结束。
蛇吃食物:
蛇每吃一个食物增长一节,并且得分加10分,总共为100节。
蛇每增长10节游戏上升一个级别。
游戏结束:
如果在游戏过程中,蛇头碰墙或是碰到了自己的身体,则游戏结束。
如果在游戏过程中,用户选择退出游戏,则提醒用户游戏正在进行,是否要退出。
选择退出,则游戏结束。
选择取消,则游戏继续。
如果玩家成功过关,则游戏结束。
在上述任何一种情况下,系统都会询问用户:
是否保存游戏成绩?
选择确定,如果姓名为空,则默认以“匿名玩家”记录。
选择取消,则不记录。
开始:
开始游戏
暂停:
暂停游戏
退出:
退出游戏
速度:
玩家可以通过:
选项->
速度打开窗口。
系统默认的方式是变速游戏。
玩家可以自行选择变速游戏或是均速游戏。
变速游戏:
速度分1-10个级别。
并且根据关卡的高低决定速度的快慢。
均速游戏:
用户可以自行选择所要速度的快慢。
1表示最慢,10表示最快。
音乐:
当打开游戏界面时,音乐会自动播放,默认的音乐是:
Remeber。
若玩家要修改或关闭音乐,可以通过:
音乐或是F5快捷键打开窗口。
若玩家不想播放音乐,请点击关闭。
若玩家要播放选中的音乐,请点击确定。
界面:
玩家可以根据爱好选择想要的图片,总共有8张背景图片供选择。
玩家选择图片后,可以在对话框的右边预览到图片。
点击确定则显示选中的图片,点击取消则显示原先图片。
当游戏开始后,此功能键不能用。
查看记录:
关于->
查看记录或F6快捷键打开窗口。
窗口中显示了以往玩家的前三名成绩。
游戏说明:
游戏说明或F7快捷键打开窗口。
窗口中显示了本游戏的说明。
游戏的快捷键:
开始:
F2
暂停:
F3
退出:
F4
音乐:
F5
查看记录:
F6
游戏说明:
F7
4.设计方法及涉及知识点
4.1设计方法
因为界面的需要,在程序中有很多窗口:
frmStart:
游戏刚开始的窗口
frmGame:
在frmStart窗口中选择“进入游戏”后打开的窗口
frmSpeed:
用户选择速度时打开的窗口
frmMusic:
用户选择音乐时打开的窗口
frmFace:
用户选择界面时打开的窗口
frmScores:
用户查看记录时打开的窗口
frmAboutGame:
用户选择游戏说明时打开的窗口
frmMessage:
当游戏进行时,用户终止游戏出现的窗口
frmGameOver:
在蛇撞墙或是撞到自己身体是打开的窗口
frmGameSuccess:
用户成功结束游戏时打开的窗口
frmSave:
游戏开始后,游戏结束打开的窗口
此外,还创建了其他类:
Food类和Snake类
4.2涉及知识点
此程序涉及的知识点有:
函数的重载
线程的运用
文件的打开、读写和保存
窗口的创建,控件、容器、菜单和工具栏和组建的使用
5.系统开发的目的
1.通过开发该自动取款机系统,加强我们对所习的C#知识的理解掌握,理解并且学会使用面向对象的设计思想去设计程序。
2.考察我们的实践动手能力,独立思考能力,自主学习能力,还有通过一系列方法寻求帮助的能力等。
3.通过巩固以往的知识也为后续的课程打下良好的基础。
第二章系统分析
1.分析问题和定义类,给出类的定义和联系
玩家打开游戏,首先进入主页面(frmStart窗口),主页面有三个按钮:
进入游戏、退出游戏和关于游戏
进入游戏:
打开frmStart窗口
frmStart窗口:
工具栏分为游戏、选项和关于
游戏:
开始(F2)、暂停或继续(F3)、退出(F4)
游戏开始
暂停或继续:
游戏暂停或继续
游戏还没开始:
回到主界面
游戏已经开始:
打开frmMessage窗口:
选择确定:
打开frmSave窗口:
选择确定:
保存后回到主界面
选择取消:
不保存且回到主界面
选择取消:
游戏继续
选项:
速度、音乐(F5)、背景
速度:
打开frmSpeed窗口,玩家选择变速游戏或是均速游戏(此项还要选择速度)
打开frmMusic窗口,玩家选择是否播放音乐以及播放的歌曲
背景:
打开frmFace窗口,玩家选择游戏界面的背景图片
关于:
查看记录(F6)、游戏说明(F7)
打开frmScores窗口
打开frmAboutGame窗口
退出游戏:
程序结束
关于游戏:
若在游戏过程中:
蛇头碰墙或自己身体:
打开frmGameOver窗口:
玩家过关:
打开frmGameSuccess窗口:
打开frmSave窗口
之后回到主页面
此外frmGame中还调用了Snake和Food类,用来画蛇和食物。
2.系统开发平台的选择
此系统是基于MicrosoftVisualStudio2005开发环境开发的。
3.程序设计语言的选择
此系统的设计语言采用面向对象的程序设计语言MicrosoftVisualC#2.0。
4.操作平台
硬件条件:
IntelPIICPU、256RAM、20G硬盘以上的PC机
软件条件:
Windows98以上操作系统
第三章总体设计
1.系统的结构图(总图)
系统用例图:
系统类图:
系统流程图:
2.函数模块说明
frmStart:
publicpartialclassfrmStart:
Form
{
frmGamegame;
frmAboutGameaboutGame;
publicfrmStart()
InitializeComponent();
}
privatevoidbtnGoToGame_Click(objectsender,EventArgse)
game=newfrmGame();
frmGame.start=true;
game.Show();
privatevoidbtnCancel_Click(objectsender,EventArgse)
Application.Exit();
privatevoidbtnAboutGame_Click(objectsender,EventArgse)
aboutGame=newfrmAboutGame();
aboutGame.Show();
}
}
frmGame:
publicpartialclassfrmGame:
[DllImport("
winmm.dll"
)]
publicstaticexternuintmciSendString(stringlpstrCommand,stringlpstrReturnString,uintuReturnLength,uinthWndCallback);
//用于播放音乐
frmMusicmusic;
frmSpeedgameSpeed;
frmFaceface;
frmScoresscores;
frmGameOvergameOver;
frmMessageshowMessage;
frmGameSuccessgameSuccess;
//定义窗口对象
Snakesnake=newSnake();
Foodfood=newFood();
//定义类对象
Graphicsg;
Graphicsg1;
//定义画布对象
Bitmapimg;
TextureBrushtb;
//定义画图要用的的对象
intmax=100;
intspeed=1;
inthurdles=1;
stringpictureName="
真实风景1.bmp"
;
boolchangeSpeed=true;
boolpicture=false;
publicstaticboolstart=true;
publicboollive;
//判断蛇是否活着
publicstaticintscore=0;
//定义变量
publicfrmGame()
live=false;
timer1.Enabled=false;
timer1.Interval=100;
if(start==true)
Snake.snakeDirection=Snake.snakePreDirection=2;
privatevoidpalMid_Paint(objectsender,PaintEventArgse)
g=pnlOut.CreateGraphics();
g1=pnlIn.CreateGraphics();
img=newBitmap("
红墙.bmp"
);
tb=newTextureBrush(img);
g1.FillRectangle(tb,0,0,544,443);
img=newBitmap(pictureName);
g.FillRectangle(tb,0,0,500,400);
food.makeFood(g);
snake.draw(g);
mciSendString(@"
closetemp_alias"
null,0,0);
open"
"
Remember.mp3"
aliastemp_alias"
//不能修改,否则无法播放
mciSendString("
playtemp_aliasrepeat"
privatevoidtimer1_Tick(objectsender,EventArgse)
gameOver=newfrmGameOver();
gameSuccess=newfrmGameSuccess();
if(picture==false)//表示刚才没有调过界面,如果没有此判断,则调了界面后会自动开始游戏
if(timer1.Enabled==true)
live=snake.move(g);
if(changeSpeed==true)//如果是变速游戏
speed=snake.number/10+1;
//速度
hurdles=snake.number/10+1;
//级别
score=(snake.number-1)*10;
//分数
timer1.Interval=1000-(hurdles-1)*100;
else//速度不变的情况
timer1.Interval=1000-(speed-1)*100;
lblScore2.Text=((snake.number-1)*10).ToString();
lblHurdles2.Text=(snake.number/10+1).ToString();
lblSpeed2.Text=speed.ToString();
if(live==false)//蛇死了,撞了墙或是撞了自己的尾巴
//时间停止
gameOver.ShowDialog();
this.Close();
elseif(snake.number==max)
gameSuccess.ShowDialog();
else//蛇向前运动
palMid.Invalidate();
palMid.Update();
protectedoverrideboolProcessCmdKey(refMessagemsg,KeyskeyData)//重载基类方法ProcessCmdKey才能使用方向键
switch(keyData)
caseKeys.Up:
if(Snake.snakePreDirection!
=3)
Snake.snakeDirection=1;
break;
caseKeys.Right:
if(Snake.snakePreDirection!
=4)
Snake.snakeDirection=2;
caseKeys.Down:
=1)
Snake.snakeDirection=3;
caseKeys.Left:
=2)
Snake.snakeDirection=4;
=Snake.snakeDirection)
snake.move(g);
Snake.snakePreDirection=Snake.snakeDirection;
caseKeys.F2:
if(开始ToolStripMenuItem.Enabled==true)
开始ToolStripMenuItem.PerformClick();
caseKeys.F3:
暂停ToolStripMenuItem.PerformClick();
caseKeys.F4:
退出ToolStripMenuItem.PerformClick();
caseKeys.F5:
音乐ToolStripMenuItem.PerformClick();
caseKeys.F6:
查看记录ToolStripMenuItem.PerformClick();
caseKeys.F7:
游戏说明ToolStripMenuItem.PerformClick();
returntrue;
privatevoid开始ToolStripMenuItem_Click(objectsender,EventArgse)
live=true;
start=false;
timer1.Enabled=true;
picture=false;
//使能够调用Timer1_Tick
暂停ToolStripMenuItem.Enabled=true;
开始ToolStripMenuItem.Enabled=false;
//点击开始按钮后,开始、速度、界面按钮为不可用
速度ToolStripMenuItem.Enabled=false;
界面ToolStripMenuItem.Enabled=false;
privatevoid暂停ToolStripMenuItem_Click(objectsender,EventArgse)
if(timer1.Enabled==true)
{
暂停ToolStripMenuItem.Text="
继续"
else
暂停"
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
showMessage=newfrmMessage();
if(live==true)//游戏已经开始了
showMessage.ShowDialog();
showMessage.Close();
if(showMessage.getResult())
privatevoid速度ToolStripMenuItem_Click(objectsender,EventArgse)
gameSpeed=newfrmSpeed();
gameSpeed.ShowDialog();
speed=gameSpeed.speed;
changeSpeed=gameSpeed.changeSpeed;
privatevoid音乐ToolStripMenuItem_Click(objectsender,EventArgse)
//根据玩家选择播放音乐
music=newfrmMusic();
stringpath="
music.ShowDialog();
stringmusicName=music.getMusicName();
if(musicName!
="
)
musicName=music.getMusicName();
path="
+musicName+"
mciSendString(@path,null,0,0);
privatevoid界面ToolStripMenuItem_Click(objectsender,EventArgse)
//玩家可以自己选择图片
face=newfrmFace();
face.ShowDialog();
pictureName=face.name;
picture=true;
//保证不调用Timer1_Tick
privatevoid查看记录ToolStripMenuItem_Click(objectsender,EventArgse)
scores=newfrmScores();
scores.ShowDialog();
privatevoid游戏说明ToolStripMenuItem_Click(objectsender,EventArgse)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贪吃 设计 说明书