贪吃蛇设计说明书Word文档下载推荐.docx

上传人:b****4 文档编号:8012744 上传时间:2023-05-09 格式:DOCX 页数:41 大小:1.24MB
下载 相关 举报
贪吃蛇设计说明书Word文档下载推荐.docx_第1页
第1页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第2页
第2页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第3页
第3页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第4页
第4页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第5页
第5页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第6页
第6页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第7页
第7页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第8页
第8页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第9页
第9页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第10页
第10页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第11页
第11页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第12页
第12页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第13页
第13页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第14页
第14页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第15页
第15页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第16页
第16页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第17页
第17页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第18页
第18页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第19页
第19页 / 共41页
贪吃蛇设计说明书Word文档下载推荐.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

贪吃蛇设计说明书Word文档下载推荐.docx

《贪吃蛇设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《贪吃蛇设计说明书Word文档下载推荐.docx(41页珍藏版)》请在冰点文库上搜索。

贪吃蛇设计说明书Word文档下载推荐.docx

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)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2