这篇文章主要介绍了java swing实现的扫雷游戏及改进版,结合完整实例形式对比分析了java使用swing框架实现扫雷游戏功能与相关操作技巧,需要的朋友可以参考下
本文实例讲述了java swing实现的扫雷游戏及改进版。分享给大家供大家参考,具体如下:
版本1:
package awtDemo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; /** * 这个是一个简单的扫雷例子,刚接触swing编写的,适合新手练习 * 该程序使用setBounds(x,y,w,h)对控件布局 * 做法参考win xp自带的扫雷,当然还写功能没做出来, * 另外做出来的功能有些还存在bug * * @author Ping_QC */ public class test extends JFrame implements ActionListener, Runnable, MouseListener { private static final long serialVersionUID = -2417758397965039613L; private final int EMPTY = 0; private final int mine = 1; private final int CHECKED = 2; private final int mine_COUNT = 10; // 雷的个数 private final int BUTTON_BORDER = 50; // 每个点的尺寸 private final int mine_SIZE = 10; // 界面规格, 20x20 private final int START_X = 20; // 起始位置x private final int START_Y = 50; // 起始位置y private boolean flag; private JButton[][] jb; private JLabel jl; private JLabel showTime; private int[][] map; /** * 检测某点周围是否有雷,周围点的坐标可由该数组计算得到 */ private int[][] mv = { { -1, 0 }, { -1, 1 }, { 0, 1 }, { 1, 1 }, { 1, 0 }, { 1, -1 }, { 0, -1 }, { -1, -1 } }; /** * 随机产生设定个数的雷 */ public void makemine() { int i = 0, tx, ty; for (; i = 0 && tx = 0 && ty = 0 && tx = 0 && ty
运行效果:
版本2是对上面版本1程序的改进,在基础不变的基础上增加了右键标记功能以及自主选择难度功能。
package awtDemo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; @SuppressWarnings("serial") public class saolei extends JFrame implements ActionListener, Runnable, MouseListener { private final int loEMPTY = 0; private final int lomine = 1; private final int loCHECKED = 2; private final int lomine_COUNT = 10; private final int loBUTTON_BORDER = 50; private final int lomine_SIZE = 10; private final int loSTART_X = 20; private final int loSTART_Y = 50; private boolean flag; private JButton[][] jb; private JLabel jl; private JLabel showTime; private int[][] map; private int[][] mv = { { -1, 0 }, { -1, 1 }, { 0, 1 }, { 1, 1 }, { 1, 0 }, { 1, -1 }, { 0, -1 }, { -1, -1 } }; public void makelomine() { int i = 0, tx, ty; for (; i = 0 && tx = 0 && ty = 0 && tx = 0 && ty
运行效果:
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。