知识大全 Java扫雷算法

Posted 位置

篇首语:曾无好事来相访,赖尔高文一起予。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java扫雷算法相关的知识,希望对你有一定的参考价值。

Java扫雷算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   建立一个雷区可以用一个一个的JButton按钮放在棋盘状的一个JFrame里或者JDialog里 当然JButton太难看了可以的话可以监听鼠标 盘子上可以放上自己制作的几张小图片

   我们在雷区上随机地放上雷 可以用二维数组 用Math Random()随即生成下标两个 在相应的数组里布上雷

   注册监听

   点击以后按下列的方式遍历数组

  没有雷且被点击后就会慢慢的波及到类区如

               

   @ @ @ @ @ @ @ @ @ @

   @ @ @ & @ @ @ @ @ @

   @ @ @ @ @ @ $ @ @ @

   @ $ @ @ @ @ @ @ @ @

  假设点击了[ ]位置 应该变成

                                      

   @ @ @ @     ~     ~     ~        ~      ~

   @ @ @ &                       ~      ~

   @ @ @ @ @ @   $            ~       ~

   @ $ @ @ @ @     @        ~     ~

  在这里我把上图解释一下

  【 】   【 】 【 】

  【 】    【 】 【 】

  点击了【 】位置以后由于以 为基点向四周扩散一直到雷区的边沿!由于 都没有雷哪么就又以这 个几点向它们的四周扩散!以其中的任何一个为中心八个方向如果有雷的话就在这个地方标出它周围的雷数来提醒玩家!

  如到了 位置

  @( ) @( ) @( )

  $( )   @( )   @( )

  只有其 西南位置有一个雷哪么【 】位置标注以其为中心 其北 南 西 东 东北 东南 西北 西南 方向一共有 个雷

  【 】的八个方位只有其南方有一个雷哪么第一次扩展到此位置的下一个不能再展了!总而言之

  @ @ @

  @ 【】@

  @ @ @

  以【】为中心找其周围的雷数 简化一下就是不断的画正方形!可要小心哦!不要把数字标在地雷上了 只是雷区的 边沿 特别注意 边沿 二字就是提醒玩家 你现在处的位置朝八个方向走下一步有几个地雷在等着你去踏!

  下面是网上的一个例子 以上是我的理解罢了!希望对你有帮助!

  如雷区

                       

                       

                       

                       

                       

  我要知道a[ ]周围有几个雷 就只有去检测

  a[ ] a[ ] a[ ]

  a[ ]            a[ ]

  a[ ] a[ ] a[ ]

  这 个雷区是否放上了雷 仔细观察它们成在数学关系

  抽象出来就是 a[i j]的雷的个数就是由

  a[i j ] a[i j] a[i j+ ]

  a[ i j ]     a[ i j+ ]

  a[i+ j ] a[i+ j] a[i+ j+ ]

  (如果超出边界再加以判断)

  这样的 个雷区决定的

  扫雷程序还会自动展开已确定没有雷的雷区 如果a[ ]周围雷数为 a[ ]已被标示为地雷 那么a[ ] a[ ] a[ ] a[ ] a[ ] a[ ] a[ ]将被展开 一直波及到不可确定的雷区 这也是实现的关键 我们可以把数组的元素设定为一个类对象 它们所属的类设定这样的一个事件 在被展开时 检查周围的雷数是否与周围标示出来的雷数相等 如果相等则展开周围未标示的雷区 这样新的雷区展开又触发这个事件 就这样递归下去 一直蔓延到不可展开的雷区

cha138/Article/program/Java/hx/201311/25519

相关参考

知识大全 Java实现扫雷(2)

Java实现扫雷(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  */  //清楚原来的方形

知识大全 Java实现通用组合算法

Java实现通用组合算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java实现通用组合算法

知识大全 常见排序算法的java实现

  最近在面试遇到很多排序算法问题总结一下  定义数组如下  [java]  int[]array=newint[];  int[]array=newint[];  首先是插入排序  [java]  

知识大全 JAVA凸包算法

JAVA凸包算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  源码一JarvisMarchja

知识大全 HITS算法Java实现

HITS算法Java实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  HITS算法是重要的链接

知识大全 JAVA垃圾回收算法摘要

JAVA垃圾回收算法摘要  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  垃圾收集的算法分析  j

知识大全 Java通用权限控制算法

Java通用权限控制算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一种常用的权限控制算法的

知识大全 Hash算法大全(java实现)

Hash算法大全(java实现)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hash算法有很

知识大全 Java技术进阶 基于Java的IDEA加密算法探讨

Java技术进阶基于Java的IDEA加密算法探讨  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Java的垃圾回收之算法

Java的垃圾回收之算法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言  Java的堆是一