ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:1.24MB ,
资源ID:9806556      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9806556.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(贪吃蛇设计说明书.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

贪吃蛇设计说明书.docx

1、贪吃蛇设计说明书贪吃蛇设计说明书摘 要本贪吃蛇(Snake)游戏仿照以往的贪吃蛇游戏,尽管在图形界面方面存在一定的缺陷,但能够基本实现游戏的功能。本游戏分为10个级别,玩家通过方向键对蛇的运动进行控制,如果蛇吃到食物,得分加10分,并且到一定的程度级别会上升。此外,用户可以根据需要选择速度、界面以及播放的音乐,并且在游戏中保存了以往前三名玩家的记录,供玩家参考。关键字:主页面,快捷键,方向键,解决方案目 录第一章:ATM系统概述1.1系统的主要任务1.2 基本要求1.3 主要功能1.4 设计方法及涉及知识点1.4.1 设计方法1.4.2 涉及知识点1.5 系统开发的目的第二章:系统分析2.1分

2、析问题和定义类,给出类的定义和联系,2.2系统开发平台的选择2.3程序设计语言的选择2.4 操作平台第三章:总体设计3.1系统的结构图(总图)3.2函数模块说明(每个函数的原型、功能说明)3.3系统运行界面截图第四章:系统评价4.1系统的特点4.2系统的缺点4.3将来可能提出的要求第五章:小结第六章:参考文献第一章 ATM系统概述1. 系统的主要任务本游戏主要提供给玩家进行娱乐。2. 基本要求1. 要求利用面向对象的方法以及C#程序设计语言来完成该系统的设计;2. 要求在设计的过程中,建立清晰的类的层次;3. 在系统中建立相关的类,每个类中都要有各自的属性和方法;4. 程序运行结果正确,操作方

3、面,界面美观,逻辑层次清楚,程序结构合理,文档规范清晰。3. 主要功能该系统具备以下功能:控制蛇运动方向: 用键盘上的、控制蛇的运动方向。 当蛇向一个方向运动时,它的反向键被锁定。 不能通过连续按住某个方向键而加快蛇的运动。 若在游戏中,蛇头碰了墙或是自己的身体,则游戏结束。蛇吃食物: 蛇每吃一个食物增长一节,并且得分加10分,总共为100节。 蛇每增长10节游戏上升一个级别。 游戏结束: 如果在游戏过程中,蛇头碰墙或是碰到了自己的身体,则游戏结束。 如果在游戏过程中,用户选择退出游戏,则提醒用户游戏正在进行,是否要退出。 选择退出,则游戏结束。 选择取消,则游戏继续。 如果玩家成功过关,则游

4、戏结束。 在上述任何一种情况下,系统都会询问用户:是否保存游戏成绩? 选择确定,如果姓名为空,则默认以“匿名玩家”记录。 选择取消,则不记录。开始:开始游戏暂停:暂停游戏退出:退出游戏速度:玩家可以通过:选项-速度 打开窗口。 系统默认的方式是变速游戏。 玩家可以自行选择变速游戏或是均速游戏。 变速游戏:速度分1-10个级别。 并且根据关卡的高低决定速度的快慢。 均速游戏:用户可以自行选择所要速度的快慢。 1表示最慢,10表示最快。音乐:当打开游戏界面时,音乐会自动播放,默认的音乐是:Remeber。 若玩家要修改或关闭音乐,可以通过:选项-音乐 或是 F5快捷键 打开窗口。 若玩家不想播放音

5、乐,请点击关闭。 若玩家要播放选中的音乐,请点击确定。界面:玩家可以根据爱好选择想要的图片,总共有8张背景图片供选择。 玩家选择图片后,可以在对话框的右边预览到图片。 点击确定则显示选中的图片,点击取消则显示原先图片。 当游戏开始后,此功能键不能用。查看记录:玩家可以通过:关于-查看记录 或 F6快捷键 打开窗口。 窗口中显示了以往玩家的前三名成绩。游戏说明:玩家可以通过:关于-游戏说明 或 F7快捷键 打开窗口。 窗口中显示了本游戏的说明。游戏的快捷键: 开始:F2 暂停:F3 退出:F4 音乐:F5 查看记录:F6 游戏说明:F74. 设计方法及涉及知识点4.1 设计方法因为界面的需要,在

6、程序中有很多窗口:frmStart:游戏刚开始的窗口frmGame:在frmStart窗口中选择“进入游戏”后打开的窗口frmSpeed:用户选择速度时打开的窗口frmMusic:用户选择音乐时打开的窗口frmFace:用户选择界面时打开的窗口frmScores:用户查看记录时打开的窗口frmAboutGame:用户选择游戏说明时打开的窗口frmMessage:当游戏进行时,用户终止游戏出现的窗口frmGameOver:在蛇撞墙或是撞到自己身体是打开的窗口frmGameSuccess:用户成功结束游戏时打开的窗口frmSave:游戏开始后,游戏结束打开的窗口此外,还创建了其他类:Food类和S

7、nake类4.2 涉及知识点此程序涉及的知识点有:函数的重载线程的运用文件的打开、读写和保存窗口的创建,控件、容器、菜单和工具栏和组建的使用5系统开发的目的1. 通过开发该自动取款机系统,加强我们对所习的C#知识的理解掌握,理解并且学会使用面向对象的设计思想去设计程序。2. 考察我们的实践动手能力,独立思考能力,自主学习能力,还有通过一系列方法寻求帮助的能力等。3. 通过巩固以往的知识也为后续的课程打下良好的基础。第二章 系统分析1. 分析问题和定义类,给出类的定义和联系玩家打开游戏,首先进入主页面(frmStart窗口),主页面有三个按钮:进入游戏、退出游戏和关于游戏进入游戏:打开frmSt

8、art窗口frmStart窗口:工具栏分为游戏、选项和关于游戏:开始(F2)、暂停或继续(F3)、退出(F4) 开始:游戏开始 暂停或继续:游戏暂停或继续 退出:游戏还没开始:回到主界面 游戏已经开始:打开frmMessage窗口: 选择确定:打开frmSave窗口:选择确定:保存后回到主界面选择取消:不保存且回到主界面 选择取消:游戏继续选项:速度、音乐(F5)、背景 速度:打开frmSpeed窗口,玩家选择变速游戏或是均速游戏(此项还要选择速度) 音乐:打开frmMusic窗口,玩家选择是否播放音乐以及播放的歌曲 背景:打开frmFace窗口,玩家选择游戏界面的背景图片关于:查看记录(F6

9、)、游戏说明(F7) 查看记录:打开frmScores窗口 游戏说明:打开frmAboutGame窗口退出游戏:程序结束关于游戏:打开frmAboutGame窗口若在游戏过程中:蛇头碰墙或自己身体:打开frmGameOver窗口:打开frmSave窗口: 玩家过关:打开frmGameSuccess窗口:打开frmSave窗口之后回到主页面此外frmGame中还调用了Snake和Food类,用来画蛇和食物。 2. 系统开发平台的选择此系统是基于Microsoft Visual Studio 2005 开发环境开发的。3. 程序设计语言的选择此系统的设计语言采用面向对象的程序设计语言Microso

10、ft Visual C# 2.0。4. 操作平台硬件条件:Intel PII CPU、256 RAM、20G硬盘以上的PC机软件条件:Windows 98以上操作系统第三章 总体设计1. 系统的结构图(总图)系统用例图:系统类图:系统流程图:2. 函数模块说明frmStart:public partial class frmStart : Form frmGame game; frmAboutGame aboutGame; public frmStart() InitializeComponent(); private void btnGoToGame_Click(object sender,

11、 EventArgs e) game = new frmGame(); frmGame.start = true; game.Show(); private void btnCancel_Click(object sender, EventArgs e) Application.Exit(); private void btnAboutGame_Click(object sender, EventArgs e) aboutGame = new frmAboutGame(); aboutGame.Show(); frmGame:public partial class frmGame : For

12、m DllImport(winmm.dll ) public static extern uint mciSendString(string lpstrCommand, string lpstrReturnString, uint uReturnLength, uint hWndCallback); /用于播放音乐 frmMusic music; frmAboutGame aboutGame; frmSpeed gameSpeed; frmFace face; frmScores scores; frmGameOver gameOver; frmMessage showMessage; frm

13、GameSuccess gameSuccess; /定义窗口对象 Snake snake = new Snake(); Food food = new Food(); /定义类对象 Graphics g; Graphics g1; /定义画布对象 Bitmap img; TextureBrush tb; /定义画图要用的的对象 int max = 100; int speed = 1; int hurdles = 1; string pictureName= 真实风景1.bmp; bool changeSpeed = true; bool picture = false; public sta

14、tic bool start = true; public bool live;/判断蛇是否活着 public static int score = 0; /定义变量 public frmGame() InitializeComponent(); live = false; timer1.Enabled = false; timer1.Interval = 100; if (start = true) Snake.snakeDirection = Snake.snakePreDirection = 2; private void palMid_Paint(object sender, Pain

15、tEventArgs e) g = pnlOut.CreateGraphics(); g1 = pnlIn.CreateGraphics(); img = new Bitmap(红墙.bmp); tb = new TextureBrush(img); g1.FillRectangle(tb, 0, 0, 544, 443); img = new Bitmap(pictureName); tb = new TextureBrush(img); g.FillRectangle(tb, 0, 0, 500, 400); food.makeFood(g); snake.draw(g); if (sta

16、rt = true) mciSendString(close temp_alias , null, 0, 0); mciSendString(open Remember.mp3 alias temp_alias, null, 0, 0);/不能修改,否则无法播放 mciSendString(play temp_alias repeat, null, 0, 0); private void timer1_Tick(object sender, EventArgs e) gameOver = new frmGameOver(); gameSuccess = new frmGameSuccess()

17、; 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/速度不变的情况

18、hurdles = snake.number / 10 + 1; score = (snake.number - 1) * 10; 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)/蛇死了,撞了墙或是撞了自己的尾巴 Snake.snake

19、Direction = Snake.snakePreDirection = 2; timer1.Enabled = false;/时间停止 gameOver.ShowDialog(); this.Close(); else if (snake.number = max) Snake.snakeDirection = Snake.snakePreDirection = 2; timer1.Enabled = false;/时间停止 gameSuccess.ShowDialog(); this.Close(); else/蛇向前运动 palMid.Invalidate(); palMid.Upda

20、te(); protected override bool ProcessCmdKey(ref Message msg, Keys keyData) /重载基类方法ProcessCmdKey才能使用方向键 if (timer1.Enabled = true) switch (keyData) case Keys.Up: if ( Snake .snakePreDirection != 3) Snake.snakeDirection = 1; break; case Keys.Right: if (Snake.snakePreDirection != 4) Snake.snakeDirectio

21、n = 2; break; case Keys.Down: if (Snake.snakePreDirection != 1) Snake.snakeDirection = 3; break; case Keys.Left: if (Snake.snakePreDirection != 2) Snake.snakeDirection = 4; break; if (Snake.snakePreDirection != Snake.snakeDirection) snake.move(g); palMid.Invalidate(); palMid.Update(); Snake.snakePre

22、Direction = Snake.snakeDirection; switch (keyData) case Keys.F2: if (开始ToolStripMenuItem.Enabled =true ) 开始ToolStripMenuItem.PerformClick(); break; case Keys.F3: 暂停ToolStripMenuItem.PerformClick(); break; case Keys .F4 : 退出ToolStripMenuItem.PerformClick(); break; case Keys .F5: 音乐ToolStripMenuItem.P

23、erformClick(); break; case Keys.F6 : 查看记录ToolStripMenuItem.PerformClick(); break; case Keys .F7 : 游戏说明ToolStripMenuItem.PerformClick(); break; return true; private void 开始ToolStripMenuItem_Click(object sender, EventArgs e) live = true; start = false; timer1.Enabled = true; picture = false;/使能够调用Time

24、r1_Tick 暂停ToolStripMenuItem.Enabled = true; 开始ToolStripMenuItem.Enabled = false;/点击开始按钮后,开始、速度、界面按钮为不可用 速度ToolStripMenuItem.Enabled = false; 界面ToolStripMenuItem.Enabled = false; private void 暂停ToolStripMenuItem_Click(object sender, EventArgs e) if (timer1 .Enabled =true ) timer1.Enabled = false; 暂停T

25、oolStripMenuItem.Text = 继续; else timer1.Enabled = true; 暂停ToolStripMenuItem.Text = 暂停; private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) showMessage = new frmMessage(); timer1.Enabled = false; if (live = true)/游戏已经开始了 showMessage.ShowDialog(); showMessage .Close (); if (showMessage.

26、getResult() timer1.Enabled = true; else this.Close(); else Snake.snakeDirection = Snake.snakePreDirection = 2; this.Close(); private void 速度ToolStripMenuItem_Click(object sender, EventArgs e) gameSpeed = new frmSpeed(); gameSpeed.ShowDialog(); speed = gameSpeed.speed; changeSpeed = gameSpeed.changeS

27、peed; palMid.Invalidate(); palMid.Update(); private void 音乐ToolStripMenuItem_Click(object sender, EventArgs e)/根据玩家选择播放音乐 music = new frmMusic(); string path=; mciSendString(close temp_alias , null, 0, 0); music.ShowDialog(); string musicName = music.getMusicName(); if (musicName != ) musicName = mu

28、sic.getMusicName(); path = open +musicName+ alias temp_alias; mciSendString(path, null, 0, 0);/不能修改,否则无法播放 mciSendString(play temp_alias repeat, null, 0, 0); palMid.Invalidate(); palMid.Update(); private void 界面ToolStripMenuItem_Click(object sender, EventArgs e)/玩家可以自己选择图片 face = new frmFace(); face

29、.ShowDialog(); pictureName = face.name; timer1.Enabled = true; picture = true;/保证不调用Timer1_Tick palMid.Invalidate(); palMid.Update(); private void 查看记录ToolStripMenuItem_Click(object sender, EventArgs e) scores = new frmScores(); scores.ShowDialog(); palMid.Invalidate(); palMid.Update(); private void 游戏说明ToolStripMenuItem_Click(object sender, EventArgs e)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1