扫雷游戏想必大家都玩过,但有没有想过自己开发呢?Java开发过许多小游戏,其中扫雷给小白来练手非常适合不过了。
话不多说,首先展示一下游戏界面:
![9d394108b35ddfbb211087d043caf50b.png](https://i-blog.csdnimg.cn/blog_migrate/ac6762ea2baa0062da3d420726831a78.jpeg)
实现过程如下:
首先设计一个二维数组,用于存放雷和周围八个格子雷的个数,再定义两个一维数组分别存放雷的X和Y坐标,布雷,记录周围八个格子雷的个数。
我使用的是EditPlus(新建Java项目Boom,新建package:boom,新建Class:Block)
代码:
![11b94ed58347a4f87c41adb8d9e5c192.png](https://i-blog.csdnimg.cn/blog_migrate/693ac4eb931c75cb282d08a2c1998fe7.jpeg)
![5dd979f80b46a7daca5bd14e7f14258b.png](https://i-blog.csdnimg.cn/blog_migrate/6754d051715b2337a4ee9b23d63ab0b5.jpeg)
建立一个顶层容器JFrame,上面添加一个JPanel——JpMain,使用BorderLayout布局North为重新开始按钮,Center为雷区(新建一个对象,把雷区进行了封装),South为选择难度区域(任然使用一个JPanel,上面添加JRadioButton单选器),顶层容器代码:
(在Boom项目下新建Class,命名为SuperJpanel。)
代码
![9166c05cdbf619ad9c374c5df8bc0e9b.png](https://i-blog.csdnimg.cn/blog_migrate/2154420dadbd053128943f2fb6f2a901.jpeg)
![03972ed9cabe471944870bf27adacaaa.png](https://i-blog.csdnimg.cn/blog_migrate/c3f311bb7b9bf161eba141d30473829d.jpeg)
![3fb15caee29c45b2db40f653ce94c999.png](https://i-blog.csdnimg.cn/blog_migrate/7df295cb888f9c1540640c78e1e658da.jpeg)
创建一个对象——雷区对象的初始化,整个雷区使用一个JPanel包含,这个JPanel使用GridLayout布局方式,雷区有多少个格子就添加多少个JPanel,使用卡片布局方式,每个JPanel中有两个卡片,第一个卡片为按钮,第二张卡片为JLabel——用于显示雷,周围雷的个数。
(新建Class命名为CenterJpanel)
PS:将遍历周围八个数组封装成方法,再递归调用,最后发现因为递归层次太多极其容易卡死,所以不得不另想办法,最后想到了使用队列,把每个0的点放入队列,直到判断到不为0的地方。
代码:
![4db392c9b53a9826c253c0d0918af65e.png](https://i-blog.csdnimg.cn/blog_migrate/60b9b00be600d1fd3a5e8828cd37cf13.jpeg)
![eab0010ea05695f40d59a24b210dea31.png](https://i-blog.csdnimg.cn/blog_migrate/2b9d64c42c0ad0957ec598f1e09ecde5.jpeg)
![a7fe5540de6c5f666fb7c538caade80a.png](https://i-blog.csdnimg.cn/blog_migrate/320efd6455fe72e2c44b92975060d7ec.jpeg)
![9e58450c0375824f6c2744b605988107.png](https://i-blog.csdnimg.cn/blog_migrate/394ef38739842ce74f98fb31927926c2.jpeg)
![098595159ca5aceee0d05e41e4cc7a88.png](https://i-blog.csdnimg.cn/blog_migrate/4a187ec6d49922a5b7708b178326c639.jpeg)
新建Class ——BoomMain 勾选产生主函数
主函数,初始化一个SuperJpanel对象
代码:
![801992ef9027fb87ccb45550155d89ec.png](https://i-blog.csdnimg.cn/blog_migrate/f8ea9e7a34ee44880dea049ef957335d.jpeg)