挖地雷课程设计
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 05:56:26 体裁作文
篇一:挖地雷项目设计
挖地雷系统设计
一、可行性研究与计划 ................................................................................................................... 1
二、需求分析 ................................................................................................................................... 2
1、资源需求 ............................................................................................................................. 2
2、功能需求 ............................................................................................................................. 2
三、设计........................................................................................................................................... 3
1 系统初始化模块 ........................................................................................................................... 3
2 游戏级别启动、布局和左右键功能模块 ................................................................................... 4
3 英雄榜模块 ................................................................................................................................... 4
四、开发........................................................................................................................................... 4
1、程序框架 ............................................................................................................................. 4
(1)、菜单 .......................................................................................................................... 4
(2)、窗口设计 .................................................................................................................. 4
(3)、地雷阵界面设计 ...................................................................................................... 5
2、数据结构 ............................................................................................................................. 5
五、测试........................................................................................................................................... 7
1 系统测试 ............................................................................................................................... 7
2 单元模块测试 ....................................................................................................................... 7
六、维护........................................................................................................................................... 7
一、 可行性研究与计划
项目背景和目的:本项目是对学生c++知识和MFC知识的一个检验,理验window编程,掌握图形界面编程、菜单编程、窗口自绘编程、对话框编程和基本控件编程。
项目规模:小规模的游戏程序。
技术可行性分析
技术分为从界面显示来看,是一个MFC单文档应用程序,包括菜单主框架窗口
、视图子窗口、显示剩余地雷、已用时间和笑脸按钮子窗口。使用MFC技术完全可行。 经济可行性
本项目从资源上分析,只要设计部门提供界面规格技术支持,不需要其他硬件支持,人员配置也不要多个人,在掌握一定的MFC技术和c++技术后可以独立完成编程工作。
操作可行性
从理论和实践上分析都可行。
社会可行性
没有社会风险和人身风险。
二、需求分析
1、资源需求
按钮资源图片6个,地雷阵的图片12个。
2、功能需求
开局功能: 当一种级别游戏启动后,如果点开局重新开始这种游戏。
初级功能: 初级由9x9矩阵组成地雷阵,行列数分别为9,地雷数为10。
中级功能: 中级由16x16矩阵组成地雷阵, 行列数分别为16,地雷数为40。 高级功能: 高级由16x20矩阵组成地雷阵, 行列数分别为16和20,地雷数为99。
自定义级别:自定义级别由小(x)x(y)矩阵组成地雷阵, 行列数分别为x和y,x不
超过20,y不超过30,地雷数为x*y/10*2。
英雄榜功能:当前局游戏结束后,如果玩的总时间不超过历史时间将存储当前时间
和用户信息到文件保存。只有3个用户,用户名可以更改,当前时间
比当前级别历史最好成绩小时提示玩家输入新的用户名称。
退出功能: 从退出菜单退出或者点系统菜单的关闭按钮。
笑脸按钮功能:和开局功能相同。
界面规格: 最外面是主窗口和菜单,客户区第一行显示剩余地雷、笑脸按钮和已
用时间,下面是地雷阵界面,当鼠标左键点击某个项后开始布雷,第
一次点的项不能为雷,如果点种的位置为雷游戏结束,如果点中的位
置为数字则显示该数字,为0则翻开它周围不是地雷的数字,当点鼠
标右键没有翻开则标志地雷将剩余地雷数减1,并更新剩余地雷显
示,如果已经标志为地雷则显示?号,当为?显示时则恢复背景显示并
且剩余地雷数加1。
颜色功能: 地雷阵周围的边框显示更改颜色。
二、 设计
主要功能流程图
1 系统初始化模块
分配主窗口类对象
创建主窗口和子窗口
显示主窗口
2 各级别游戏功能模块
3 英雄榜模块
如果时间小于历史玩时间弹出编辑用户名的对话框,存储最新时间和用户名。 进入英雄榜装入文件历史记录。
四、开发
1、程序框架
(1)、菜单
定义菜单对象,装入菜单,将对象和资源绑带,然后设置为主菜单,最后将菜单对象和资源分离。
(2)、窗口设计
创建不同风格的窗口,主窗口为可折叠式窗口。子窗口为WS_CHILD|WS_VISABLE。
在重写OnCreate 函数后创建子窗口。
初始化窗口为最大窗口,以便动态内存dc能模拟足够大的地雷阵区域。
CMainFrame:主窗口类,系统类用于显示主窗口框架和主菜单。
CWndLcdNumber类用于显示剩余地雷和已用时间。
(3)、地雷阵界面设计
采用模拟内存dc把所有小项显示在整个大模拟内存dc中。
最后显示一个大的内存位图到物理设备。
2、数据结构
由MyScene舞台类和MyItem项类组成主要的数据地雷阵数据结构,舞台类包含一个二维容器,存储的数据是一个多行多列的线性表格,还包括舞台是否开始、结束、总行、
篇二:挖地雷游戏设计报告。doc
程序设计报告
( 2011 / 2012 学年 第 一 学期)
题 目: 挖地雷
专 业 电气工程及其自动化
学 生 姓 名 嵇玉建 孙海龙
班 级 学 号
指 导 教 师 俞琼
指 导 单 位 计算机学院软件教学中心
日 期 2011-9-15
学生管理系统
一、 课题内容和要求(格式:宋体,4号,加粗,两端对齐)
背景
你玩儿过扫雷游戏吧?Windows操作系统中带了这个小游戏,那个系统叫什么来着?在游戏中要想过关,就必须要在一个 NxM 的区域上找出所有的地雷。游戏过程中,计算机会在地图上显示一些数字从而帮助你确定哪里有地雷。例如,在下面这个有两颗地雷的 4x4 的地图(*表示地雷): *... .... .*.. ....
根据上面的地图,可以计算出应该提供给游戏者的数字如下所示: *100 2210 1*10 1110
每个数字表示了该方格周围到底有几个地雷,当然,一个方格周围最多的时候只会有八个。
要求:
1. 定义一个矩阵,随机产生地雷的分布并由此产生提供给游戏者的数字信息。 2. 定义成绩排行榜,记录前五名的用户名及时间。 3. 提供菜单功能,定义不同等级的地雷地图供选择。
4. 游戏者通过坐标(如1(1,2)、0(3,4)判定第一行第二列位置为地雷,第3行第四列不是地雷)判定是否为地雷,标记地雷位置正确,则正确位置显示@符号,如触碰地雷,游戏结束,没有触碰地雷,显示该坐标位置周边地雷分布情况,如果周边有地雷不显示。 5. 成绩排行榜以文件形式保存。 6. 设计新型功能可加分。
7. 设计时间安排:
9月13日,两组互测,提交测试报告,给出改进意见。 9月15日,两组同时答辩,评选优秀设计。
二、需求分析(格式:宋体,4号,加粗,两端对齐)
功能框架(见图1)
图1
(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)
三、概要设计
1.主要结构体 chengxu ()
{ logon(); //输出程序设计人员
shuru(); //输出登录界面及提示输入姓名或退出 shang(); //输出游戏主菜单界面、闲着开始游戏或退出
menu(); //游戏操作说明
NewShow(); //布雷、进入游戏开始挖地雷 DataGetAndChoose(); //游戏结束后给出成绩及排名 }
2.主要函数流程图
篇三:JAVA课程设计指导书
1/3: 课程设计时间安排:
(1)2013年1月7日 9:00-11:00 理工实验楼212、214
(2)2013年1月9日 9:00-11:00 理工楼329
2/3: 《JAVA程序设计》课程设计指导书
一、课程设计的目的
Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了一周的Java程序设计课程设计。
通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。
二、课程设计的基本要求
1、明确题目要求,进行需求分析;
2、进行功能设计,编写设计说明;
3、进行程序设计与调试;
4、对设计过程进行系统的总结;
5、界面美观大方;
6、完成设计报告,课程设计报告应包含以下八个内容:
⑴ 课程设计题目;
⑵ 功能描述:对系统要实现的功能进行简明扼要的描述。
⑶ 方案论证:
概要设计:根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能。 详细设计:详细说明各功能模块的实现过程,所用到的算法、技巧等。
⑷ 程序说明;
⑸ 效果及存在问题:说明系统的运行效果(附上运行界面图片)、存在哪些不足以
及预期解决办法;
⑹ 结果分析及心得体会:谈谈自己在课程设计过程中的心得体会;
⑺ 附录:附上各功能模块的主要代码;
⑻ 参考文献:按参考文献规范列出各种参考文献,包括参考书目,论文和网址等。
7、 认真努力完成作业。要求独立完成,不抄袭、不雷同(雷同抄袭者,均为0分)。按时交
作业。
8、 课程设计建议在Editplus +JDK、JCreator +JDK平台上开发、调试。
9、 Java源程序应加上详尽的注释语句,对所设计的类、属性、方法说明其用途,对方法的
调用说明其用意和使用参数的原因。特别是有深刻理解、有独特见解的地方,用注释语句加以说明。
10、课程设计作业包括全部软件工程文件和课程设计说明书文件。课程设计说明书打印到规
定的课程设计说明书用纸上,并装订好。说明书格式参考附件。
三、课程设计的主要内容
利用学到的编程知识和编程技巧,通过具体项目的分析、设计和开发,掌握开发Java大型软件项目过程中所需要的软件技术并熟悉软件。
可以以小组为单位,每组1至3名学生,在教师的指导下,每组完成一至二个题目。题目可由下面提供的选题中选择或学生自选经教师审核后方可。该组每个同学承担题目的不同部分,每位同学的课程设计报告必需独立完成。
题目类型大致分配如下:
1、网络通讯类,编制网络聊天(Chat)程序,以下简称“网络”类。
2、图形界面Application类,编制类似计算器、MP3播放器、围棋打谱,斗地主、潜艇大战、挖地雷、迷宫等功能单一的程序,以下简称“图形 ”类。
3、Applet动画类,编制功能较复杂、效果较好的applet动画程序,以下简称“动画”类。
4、数据处理类,编制考试系统、出题系统、查询系统、学生学籍、课程成绩、图书编目、仓库货物等数据录入查询程序,以下简称“数据”类。
5、其它类型,自选题目,须经老师同意。
四、主要技术关键的分析、解决、方案比较
以下是可以参考的课程设计可能包含的相关知识:
1、Java核心编程J2SE:
面向对象技术
Java程序运行机制
开发环境的安装和配置
Java语言基础和重点API
Java程序异常的处理
I/O、控制台程序开发
Swing程序开发
2、数据库技术:
关系型数据库原理
SQL数据查询语言
MS SQL Server使用方法
数据库中对象的建立与使用
Java数据库编程(JDBC)
五、课程设计考核方式
指导教师依课程设计作业情况及整个课程设计中学生的表现,综合给出成绩。
成绩分为优、良、中、及格、不及格五级。
六、主要参考资料
1、《Java语言与面向对象程序设计》,朱福喜、尹为民、余振坤编著,武汉大学出版社
2、《Java语言与面向对象程序设计》,印旻编著,清华大学出版社
3、《Java程序设计实用教程》,朱站立、沈伟编著,电子工业出版社
3/3:课程设计说明书的注意问题
1.任务书中的任务是课程设计开始之前对所要设计的系统的功能描述。
2.任务书中的设计时间: 封面日期:日
3.说明书用纸要符合学院要求,要有
4.
(1)所有的图要有标注(标注位于图下),标注中的序号从1、2、3?等开始编号,并居中排版,例如:
图1 程序流程图
图2 ***图
(2) 所有的表要有表注(表注位于表上),表注中的序号从1、2、3?等开始
编号,并居中排版,例如:
表1 属性表
注:图注不能和图分在两页,表注也不能和表分开在两页
5. 说明书中的内容序号分别为:
一级标题 1 2 3
二级标题 1.1 1.2 1.3
三级标题 1.1.1 1.1.2 1.1.3
接下来用 (1) (2) (3)
再接下来用 ① ② ③
6. 说明书中必须有程序运行的截图(即图中显示运行结果),例如图3(运行图
一)中没有任何运行结果,不可用于程序运行结果的说明,而图4(运行图二)则可以。
图3 运行图一
图4 运行图二
7. 在详细设计或功能说明中,要对每一功能模块做以介绍,应的图或表,也可加上关键代码(关键代码不是必须的)。
8. 效果及存在的问题中要有针对性的对本系统进行总结和说明。
9. 附录另起一页
10. 参考文献的要求
参考文献要列出3篇以上,格式如下:
[1] 谢宋和, 甘 勇. 单片机模糊控制系统设计与应用实例[M]. 北京: 电子工业出版社, 1999.5:20-25
篇四:挖地雷—动态规划
第四题 挖地雷(存盘名4.pas)
在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的。
例如:
V1 V5
当地窖及其连接的数据给出之后,某人可以从?a href="http://www.zw2.cn/zhuanti/guanyuwozuowen/" target="_blank" class="keylink">我淮纪诘乩祝缓罂梢匝刈胖赋龅牧油峦冢ń瞿苎≡褚惶趼肪叮蔽蘖邮蓖诘乩坠ぷ鹘崾I杓埔桓鐾诘乩椎姆桨福鼓橙四芡诘阶疃嗟牡乩住?/p>
输入文件4.in,共N+1行。按如下格式输入
N (表示地窖的个数)
W1 W2 W3…… WN (表示每个地窖中埋藏的地雷数量) A12…………… . A1N
(Aij=1表示地窖i,j之间有通路,Aij=0表示
A23…………. . A2N 地窖i,j之间没有通路) ……..
AN-1 N
输出文件4.out,二行,第一行为挖地雷的地窖顺序,中间用空格隔开;第二行为一个整数,表示挖地雷的数量。
样例:
输入: 输出:
5 1 3 4 5
10 8 4 7 6 27
1 1 1 0
0 0 0
1 1
1
挖地雷—动态规划
在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的。
例如:
V1 V5
题目要求
当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使某人能挖到最多的地雷。
输入格式: N: (表示地窖的个数)
W1,W2,W3,……WN (表示每个地窖中埋藏的地雷数量) A12…………… . A1N (Aij=1表示地窖i,j之间有通路,Aij=0表示
A23…………..A2N 地窖i,j之间没有通路) ……..
AN-1 N
输出格式:
K1--K2--……….KV (挖地雷的顺序)
MAX (挖地雷的数量)
例如:
--------⑧ ④-----⑦-------⑥
其输入格式为: 输出:
5 1 –3 -4 -5
10,8,4,7,6 max=27
1 1 1 0
0 0 0
1 1
1
参考程序:
var
i,j,k,n:shortint;
max:longint;
a:array[1..20,1..20]of shortint;{地窖之间的连通关系}
w:array[1..20]of integer;{每个地窖所有的地雷数}
f:array[1..20]of record
sum:longint;{从第I个地窖开始最多可以挖到的地雷总数} next:shortint{向后的链接,即应再向后挖的地窖的编号} end;
begin
readln(n); {读入数据}
for i:=1 to n do read(w[i]); readln;
for i:=1 to n-1 do
begin
for j:=i+1 to n do read(a[i,j]);
readln
end;
fillchar(f,sizeof(f),0); {f数组初始化}
f[n].sum:=w[n]; {从f[n]开始,向前求每一个f[i]}
for i:=n-1 downto 1 do
begin
max:=0; k:=0; {求max{f[j].sum},作为f[i]的后继} for j:=i+1 to n do
if (a[i,j]=1) and (f[j].sum>max) then
begin
max:=f[j].sum;
k:=j;
end;
f[i].sum:=w[i]+max; {得到f[I]}
f[i].next:=k;
end;
k:=1; {找一个 max{f[i].sum} 作为问题的解} for i:=2 to n do
if f[i].sum>f[k].sum then k:=i;
max:=f[k].sum;
write(k);
k:=f[k].next; {输出路径方案}
while k<>0 do
begin
write('-',k);
k:=f[k].next;
end;
writeln;
writeln(max);{输出所挖地雷的最大值}
end.
篇五:C语言程序设计扫雷游戏实验报告
中南大学
程序设计基础实践报告
学生姓名 张兰兰 学 院 信息科学与工程学院 专业班级 物联网工程1301班 完成时间 2014.1 题 目 设计一个和window系统类似的小游戏【挖地雷】
目 录
1. 课程设计内容 ............................................................................................. 3 2. 课程设计目的 ......................
....................................................................... 3 3. 背景知识 .................................................................................................... 3 4. 工具/准备工作 ............................................................................................ 5 5. 设计步骤、方法 ......................................................................................... 55.1. 步骤1:步骤名称(二级标题) ....................................................... 错误!未定义书签。
步骤1.1:步骤名称(三级标题) .............................................................................. 5 5.1.1.
5.2.
5.3. 步骤2:步骤名称 .......................................................................... 错误!未定义书签。 步骤n:步骤名称 .......................................................................... 错误!未定义书签。 6. 设计结果及分析 ......................................................................................... 5 7. 设计结论 .................................................................................................. 15 8. 问题及心得体会 ....................................................................................... 16 9. 对本设计过程及方法、手段的改进建议 .................................................... 17 10. 参考文献 .................................................................................................. 17
报告名称
1. 课程设计内容
在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活的一分,越来越多的人使用计算机办公、娱乐等等。
扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。我利用C-free编写了与它功能相仿的挖地雷游戏,寓学于乐。
即:设计一个功能与Windows中的挖雷游戏相同的小游戏。
2. 课程设计目的
1.培养学生综合运用所学知识独立完成课题的能力。
2.试学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。
3.提高对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
4.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
5.培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
6.对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核
3. 背景知识
游戏玩法:以windows XP自带扫雷winmine.exe为例
游戏区包括雷区、地雷计数器(位于左上角,记录剩余地雷数)和计时器(位于右上角,记录游戏时间),确定大小的矩形雷区中随机布置一定数量的地雷(初
级为9*9个方块10个雷,中级为16*16个方块40个雷,高级为16*30个方块99个雷,自定义级别可以自己设定雷区大小和雷数,但是雷区大小不能超过24*30),玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷。
游戏的基本操作包括左键单击(Left Click)、右键单击(Right Click)、双击(Chording)三种。其中左键用于打开安全的格子,推进游戏进度;右键用于标记地雷,以辅助判断,或为接下来的双击做准备;双击在一个数字周围的地雷标记完时,相当于对数字周围未打开的方块均进行一次左键单击操作:
左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。
双击:同时按下左键和右键完成双击。当双击位置周围已标记雷数等于该位置数字时操作有效,相当于对该数字周围未打开的方块均进行一次左键单击操作。地雷未标记完全时使用双击无效。若数字周围有标错的地雷,则游戏结束,标错的地雷上会显示一个“ ×”(见下图)
扫雷的设计原理:
扫雷游戏分为几个步骤:
第一步,使用二维数组表示地图;
第二步,随机生成几个地雷;
第三步,点击方格的反应,计算每个非雷区方格点开后的数字;
第四步,当方格数字为0的情况;
第五步,当方格为地雷的情况。
第一步地图的大小和第二步地雷的数量都应该是程序中给定的,或者玩家输入的。这个是多少自己决定吧。第三步,计算非雷区方格点开后的数字就把这个方格在二维数组中周围八个方向的方格是否是地雷都检查一遍,一定要注意不要越出数组边界。这个数字可以在游戏初始化时全都计算好,也可以在玩家点击的时
候再计算。点击非雷区方格,显示数字,这个方格标记为“已点过”。第四步,当方格数字为0时,这里要用到递归调用,就是让程序自动“点击”这个数字为0方格周围的八个方格,然后再看结果,如果不是0,就停止,如果是0,依然递归调用,直到没有0为止,或者直到点遍所有方格为止,一定要注意不要越出数组边界。第五步,很简单,宣布玩家死亡就可以了。
4. 工具/准备工作
查阅相关资料,了解扫雷的的玩法,了解扫雷的设计思想方法。借鉴他人写过的程序,从中找到突破口。从程序中了解需要的各种函数准备,再进一步获悉该函数的功能与使用方法。
对自己要设计的挖地雷游戏进行功能分析,大致如下:
总体游戏过程分析:在屏幕上显示一个游戏界面,雷区范围内预先埋设了一定数量的随机分布的地雷(用数字9代替地雷);玩家通过从键盘中输入(行数X,列数Y)↙进行点击;若能点中所有非雷区,则游戏胜利;否则踩雷,游戏失败。
简易版扫雷游戏要具备以下功能:
1) 开局:首先选择游戏等级,然后生成不同等级的雷区界面。游戏等级分
为三级:各等级行列数为———:简单:10×10、普通:15×15、困难:
20×20;雷区每个*号下面或埋藏有
1个地雷,或者没有地雷;
2) 挖雷:从键盘中输入(行数X,列数Y),并按回车键,可挖开它;若所
揭方块下有9,则踩雷,此时所有含地雷的块都出现9,该局游戏失败;
如果方块上出现数字,它代表在它周围的8个方块中共有多少颗地雷;
3)
4) 输入:通过键盘输入相关指示信息; 输出:提示游戏失败,是否继续再来一遍;
5. 设计步骤、方法
5.1主函数第一步,写出主程序的基本框架,确定各子模块名字和参数。 具体的函数流程如图5-3 所示:
定义使用到的常数、全局变量、函数原型说明。然后初始化图形系统,调用游戏
体裁作文