Java图形界面编程小游戏 --- 10 * 10 扫雷 讲解

      前几天老师布置了个控制台扫雷游戏,就是自己输入坐标,然后在打印一下扫雷盘(扫雷界面).做好以后,总觉得这种控制台的界面看着不舒服,自己又会一些GUI界面的知识,然后就做了个这么个小游戏.(本程序全部源代码已上传,需要的可以去下载)

       编程最重要的是思路,让我们先把思路理清楚:

          首先是了解一下扫雷规则,10 * 10 的是有10个雷,这10个雷是随机生成的,当然你也可以要15个,这个也不一定按照常规来,可以设计你自己的扫雷游戏.然后其余90个格子不是数字就是空白(数字为0时,就打印空白),每个格子周围有几个雷,它就打印什么数字.你点击你个格子,如果是雷,则游戏结束,如果是数字,则直接打印数字,如果是空白,则要判断它周围的格子,周围格子也已这种方法判断下去,最后还剩10个没有被点开就赢了.

           然后再想想怎么实现这些功能,看到 10 * 10 ,则可以用个数组来表示格子,数组值表示储存它要打印的什么,10个雷也直接随机生成,注意不要生成重复的.最后点开后的处理可以用递归的方法解决.

       最后就是把这个思路和图形界面结合在一起:        

            先定义个MyPanel类,用来画每个格子,给好属性,


   然后重写paint方法,刚开始全部格子都不能被看见里面的showStr,所以先全部用个颜色填充了,


    颜色自己设置,可以设基础色,也可以用RGB设置,showStr里的数据最后打印,注意是0的话就不打印,


    showStr里的数据在添加点击事件后,会根据你点的情况而改变.
    写扫雷盘类,自定义DrawBong类继承JFrame,设置布局为GridLayout,然后添加100个MyPanel进入DrawBong,同时给MyPanel添加鼠标事件.



    然后初始化雷.


    最后初始化其他MyPanel(即设置它们showStr的数据).


然后把事件类写了,定义BongEvent继承MouseAdapter类,在类里面写一个Deal方法处理点开后的展开




最后可以根据自己的爱好加输赢界面,不想加就直接退出.

全做完后写个运行类就可以运行了

   这是开始界面:


    点了一个有数字后的效果:


点到空白后的效果:


然后加了右键提示是雷的效果


这是扫雷成功的界面:


这是扫雷失败的界面


到这里整个扫雷小游戏就全部做完了,如果需要完整可以去下载,我已经上传了.

猜你喜欢

转载自blog.csdn.net/mxc_mxc/article/details/80246418
10