扫雷c语言课程设计报告,扫雷游戏实验报告.docx
扫雷游戏实验报告剖析
课程设计软件综合课程设计班 级:姓 名:学 号:指导教师:成 绩:电子与信息工程学院信息与通信工程系目录1.任务概述------------------------------------32.功能及模块设计------------------------------33.数据结构与算法设计--------------------------44.程序描述------------------------------------65.设计感想------------------------------------96.参考文献------------------------------------10附录1 程序源码--------------------------------101.任务概述1.1设计题目扫雷游戏1.2规则要求 1) 图形用户界面。2) 类似 windows 附件的扫雷游戏。3) 其余功能自行扩展。1.3目标锻炼自学能力、办公软件操作能力、程序设计能力、培养学生的编程思想、编程兴趣。1.4运行环境Java , esclipse 1.5条件与限制1)图形界面美观大方。2)功能必须正确,扩展功能自行丰富。3)程序设计要注意健壮性。2.功能及模块设计2.1具体的功能介绍过程分析:在屏幕中显示一个雷区,雷区范围内预先埋设了一定数量的随机分布的地雷;玩家可以对雷区进行标记,如果能正确标记出雷区中的所有地雷,则游戏胜利;如果踩雷,则游戏失败。1)开局:开局默认初级难度,有三个难度供选择-初级:12*12、中级:15*15、高级:20*20;各级地雷数分别为:10,25,50;雷区每个方块下或有地雷,或者没有地雷;2)挖雷:将鼠标移动到某个方格上,并点击鼠标左键,可挖开它;若所揭开方块下有雷,则游戏失败;如果没有雷,则显示数字,数字为这个方格周围八个方格的雷的数目。3)标记地雷:在鼠标所在的某个方格上右击一次或两次,则标记该区域;一次表示认为此区域有雷,两次表示不确定这个区域是否有雷。每标记一个区域,则显示的地雷数减1。4)判断胜负:如果挖出了其它所有无雷区,或者标记出了所有的雷区,则游戏胜利。如果在游戏中挖到任何地雷则游戏失败。2.2软件模块划分表1-11)选择游戏难度2)重新开始按钮3) 存放未找到的雷的个数4)雷区3.数据结构与算法设计3.1数据结构 在存放雷区信息时用到了二维数组。3.2算法3.2.1 随机函数随机布雷扫雷游戏要求在M 行、N 列的一块网格游戏区内随机地布上MineNum 个雷,且MineNum 的取值应该小于M 和N 的乘积。这可以在一张M×N 的网格上通过满足均匀分布的随机算法实现。其中有MineNum 个网格是雷区,剩下的网格为非雷区。游戏的目标是尽可能快地找到所有的雷区,而不踩到地雷。JAVA 提供了实现随机算法的类Math,通过Math 类的random () 方法,这可以很方便的实现随机布雷功能。这可以通过以下的代码实现随机布雷算法。for (int i = 0; i < mineNum; ) { int x = (int) (Math.random() * (int) (Math.sqrt(BlockNum) - 1)); int y = (int) (Math.random() * (int) (Math.sqrt(BlockNum) - 1)); if (mineButton[x][y].isMine != true) { mineButton[x][y].isMine = true; i++; } }3.2.2计算点击位置周围雷的数目扫雷游戏中相邻的九个格子关系密切,因此需要一个简便的算法对这九个格子进行遍历。(i-1,j-1)(i-1,j)(i-1,j+1)(I,j-1)(i,j)(I,j+1)(i+1,j-1)(i+1,j)(i+1,j+1)可以用以下算法来实现:for (int x = i - 1; x < i + 2; x++) { for (int y = j - 1; y < j + 2; y++) { if ( ( (x != i) || (y != j)) && (x >= 0) && (y >= 0)………………….. }3.2.2 递归算法无雷区自动翻开,点击一个位置,如果是0,也即是无雷,那么就翻开他的上下左右8个格子,然后对这八个格子进行检查,如果当中某个格子也是0,那么继续对这格子的上下左右进行检查,如此反复。 递归算法(){周围有地雷&&未打开 {打开方块标记该块地雷数量 }周围没有地雷
扫雷c语言课程设计报告,扫雷游戏实验报告.docx相关推荐
- c语言学生档案管理课设作业,2019-2020年c语言课程设计学生档案管理系统实验报告.doc...
2019-2020年c语言课程设计学生档案管理系统实验报告.doc 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: *********C 语 ...
- 学生选课管理系统c语言程序报告,c语言课程设计学生选课管理系统实验报告.doc...
课程设计报告 课程设计题目:学生选课管理系统 学 号 姓 名:李唐松 专 业:软件工程 班 级: 091107 指导老师:谢小林 2009年1月5 *实验题目: 学分管理程序 *实验时间与地点:200 ...
- c语言课程设计猜数字游戏报告,C语言课程设计-猜数字游戏报告.doc
C语言课程设计-猜数字游戏报告 摘要 该软件在Windows系统上为玩家提供猜数字游戏的基本功能,游戏用户可以选择开始游.排行榜查看.帮助等主要功能.当用户选择开始游戏时,系统会提示用户排行榜上猜数字 ...
- 贪吃蛇c语言课程设计报告下载,c语言课程设计-贪吃蛇游戏
c语言课程设计-贪吃蛇游戏 C 语言课程设计 1 山东交通学院 C 语言课程设计 贪吃蛇游戏 院(系)别 交通与物流工程学院 班 级 物联 131 学 号 130516122 姓 名 王赛 指导教师 ...
- c语言课程设计猜数字游戏报告,C语言课程设计猜数字游戏报告
C语言课程设计猜数字游戏报告 C 语言课程设计----猜数字1摘 要该 软 件 在 Windows 系 统 上 为 玩 家 提 供 猜 数 字 游 戏的 基 本 功 能 , 游 戏 用 户 可 以 选 ...
- 1到100猜数字游戏规则c语言,[C语言课程设计猜数字游戏1.doc
[C语言课程设计猜数字游戏1 课 程 设 计 报 告 课程名称 C语言程序设计报告 课题名称 猜数字游戏 专 业 电气工程及其自动化 班 级 1104 学 号 33 姓 名 张腾 指导教师 黄晓宇 丁 ...
- c语言课程设计之黑白棋游戏,c语言课程设计黑白棋游戏.doc
您所在位置:网站首页 > 海量文档  > 学术论文 > 大学论文 c语言课程设计黑白棋游戏.doc26页 本文档一共被 ...
- c语言程序设计报告表达式求值,数据结构 课程设计表达式求值 实验报告
<数据结构 课程设计表达式求值 实验报告>由会员分享,可在线阅读,更多相关<数据结构 课程设计表达式求值 实验报告(21页珍藏版)>请在人人文库网上搜索. 1.实验课程名称 级 ...
- 数据结构最短路径例题_《数据结构课程设计》最短路径问题实验报告
<<数据结构课程设计>最短路径问题实验报告>由会员分享,可在线阅读,更多相关<<数据结构课程设计>最短路径问题实验报告(17页珍藏版)>请在人人文库网上 ...
最新文章
- python每月定时_如何用Python写一个每分每时每天的定时程序
- 某android平板项目开发笔记--自定义sharepreference UI
- java在dog中定义name变量,组合构造 冯跃峰 java中组合的应用(不相干的类共同完成一个功能)+构造器回顾...
- iOS 配置pch文件
- html中如何设置图片填充颜色渐变,实现SVG图标的渐变填充效果
- Android7.0 emui主题,全新EMUI5.0基于Android7.0 天生快,一生快!
- 美图技术博客之地理空间距离计算优化
- 异步udpserver接收rtp转html5(一)
- 中国邮路问题邮递员问题欧拉路径图论C++
- 原来这样做模型分数,稳定性与灵活性可以双保障!
- Seesion工作原理
- useCallback()和useMemo()的作用
- Svchost进程应用技巧
- 超市管理系统软件测试用例图,超市管理系统用户管理模块测试用例集.doc
- MATLAB的非线性变换
- linux服务器如何查看cpu温度,在LINUX下面如何查看CPU的温度
- 服务器防火墙部分指令
- 海思59V200PQtool环境的搭建
- 聊聊两个状态管理库 Redux Recoil
- 入手评测 天玑1200和骁龙865对比哪个好
热门文章
- oracle CLOB与BLOB的区别及使用
- Kafka触发Rebalance的场景分析
- 海量数据相似数据查找方法(ANN):【高维稀疏向量的相似查找——MinHash, LSH, SimHash】【稠密向量的相似查找——Faiss、Annoy、ScaNN、Hnswlib】
- python构建指数平滑预测模型
- 位运算 - 位运算基本操作
- 几个 Linux 耍酷命令,手把手教你如何技术撩妹!技术脱单
- AIX7.1 安装配置 EMC CLARiiON 存储驱动软件
- jQuery权威指南(第2版)pdf
- 【工作向】docker镜像构建方法与命令
- # tree bash: tree: 未找到命令...