扫雷游戏实验报告剖析

课程设计软件综合课程设计班 级:姓 名:学 号:指导教师:成 绩:电子与信息工程学院信息与通信工程系目录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相关推荐

  1. c语言学生档案管理课设作业,2019-2020年c语言课程设计学生档案管理系统实验报告.doc...

    2019-2020年c语言课程设计学生档案管理系统实验报告.doc 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: *********C 语 ...

  2. 学生选课管理系统c语言程序报告,c语言课程设计学生选课管理系统实验报告.doc...

    课程设计报告 课程设计题目:学生选课管理系统 学 号 姓 名:李唐松 专 业:软件工程 班 级: 091107 指导老师:谢小林 2009年1月5 *实验题目: 学分管理程序 *实验时间与地点:200 ...

  3. c语言课程设计猜数字游戏报告,C语言课程设计-猜数字游戏报告.doc

    C语言课程设计-猜数字游戏报告 摘要 该软件在Windows系统上为玩家提供猜数字游戏的基本功能,游戏用户可以选择开始游.排行榜查看.帮助等主要功能.当用户选择开始游戏时,系统会提示用户排行榜上猜数字 ...

  4. 贪吃蛇c语言课程设计报告下载,c语言课程设计-贪吃蛇游戏

    c语言课程设计-贪吃蛇游戏 C 语言课程设计 1 山东交通学院 C 语言课程设计 贪吃蛇游戏 院(系)别 交通与物流工程学院 班 级 物联 131 学 号 130516122 姓 名 王赛 指导教师 ...

  5. c语言课程设计猜数字游戏报告,C语言课程设计猜数字游戏报告

    C语言课程设计猜数字游戏报告 C 语言课程设计----猜数字1摘 要该 软 件 在 Windows 系 统 上 为 玩 家 提 供 猜 数 字 游 戏的 基 本 功 能 , 游 戏 用 户 可 以 选 ...

  6. 1到100猜数字游戏规则c语言,[C语言课程设计猜数字游戏1.doc

    [C语言课程设计猜数字游戏1 课 程 设 计 报 告 课程名称 C语言程序设计报告 课题名称 猜数字游戏 专 业 电气工程及其自动化 班 级 1104 学 号 33 姓 名 张腾 指导教师 黄晓宇 丁 ...

  7. c语言课程设计之黑白棋游戏,c语言课程设计黑白棋游戏.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp学术论文&nbsp>&nbsp大学论文 c语言课程设计黑白棋游戏.doc26页 本文档一共被 ...

  8. c语言程序设计报告表达式求值,数据结构 课程设计表达式求值 实验报告

    <数据结构 课程设计表达式求值 实验报告>由会员分享,可在线阅读,更多相关<数据结构 课程设计表达式求值 实验报告(21页珍藏版)>请在人人文库网上搜索. 1.实验课程名称 级 ...

  9. 数据结构最短路径例题_《数据结构课程设计》最短路径问题实验报告

    <<数据结构课程设计>最短路径问题实验报告>由会员分享,可在线阅读,更多相关<<数据结构课程设计>最短路径问题实验报告(17页珍藏版)>请在人人文库网上 ...

最新文章

  1. python每月定时_如何用Python写一个每分每时每天的定时程序
  2. 某android平板项目开发笔记--自定义sharepreference UI
  3. java在dog中定义name变量,组合构造 冯跃峰 java中组合的应用(不相干的类共同完成一个功能)+构造器回顾...
  4. iOS 配置pch文件
  5. html中如何设置图片填充颜色渐变,实现SVG图标的渐变填充效果
  6. Android7.0 emui主题,全新EMUI5.0基于Android7.0 天生快,一生快!
  7. 美图技术博客之地理空间距离计算优化
  8. 异步udpserver接收rtp转html5(一)
  9. 中国邮路问题邮递员问题欧拉路径图论C++
  10. 原来这样做模型分数,稳定性与灵活性可以双保障!
  11. Seesion工作原理
  12. useCallback()和useMemo()的作用
  13. Svchost进程应用技巧
  14. 超市管理系统软件测试用例图,超市管理系统用户管理模块测试用例集.doc
  15. MATLAB的非线性变换
  16. linux服务器如何查看cpu温度,在LINUX下面如何查看CPU的温度
  17. 服务器防火墙部分指令
  18. 海思59V200PQtool环境的搭建
  19. 聊聊两个状态管理库 Redux Recoil
  20. 入手评测 天玑1200和骁龙865对比哪个好

热门文章

  1. oracle CLOB与BLOB的区别及使用
  2. Kafka触发Rebalance的场景分析
  3. 海量数据相似数据查找方法(ANN):【高维稀疏向量的相似查找——MinHash, LSH, SimHash】【稠密向量的相似查找——Faiss、Annoy、ScaNN、Hnswlib】
  4. python构建指数平滑预测模型
  5. 位运算 - 位运算基本操作
  6. 几个 Linux 耍酷命令,手把手教你如何技术撩妹!技术脱单
  7. AIX7.1 安装配置 EMC CLARiiON 存储驱动软件
  8. jQuery权威指南(第2版)pdf
  9. 【工作向】docker镜像构建方法与命令
  10. # tree bash: tree: 未找到命令...