Java编写的扫雷小程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
J a v a编写的扫雷小程序 Revised by Petrel at 2021
整个程序使用了4个类:
Game 用于启动程序, 界面的布置,各种行列的算法。
ExtendButton 继承了Jbutton 用于新建button的各种属性
ShowNum 监听到某个button后,计算出此button周围有几个雷,不同的雷对应不通的图片,类得到button上应加载的图片地址
ViewReSet 此类用于新建一个窗口,用户输入自己想要的行、列、雷数,然后用新的行列雷数new一个新的Game
biaose dise1 dise2 dise3
dise4 dise5 dise6 dise7
dise8 dise lei biaoji
/************************************************************** **
运行类创建游戏主窗体
*/
package
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
public class Game extends JFrame implements ActionListener{ private Container myContainer;
private GridLayout myLayout;
private JPanel myPanelMain;
private JPanel myPanel;
private JToolBar myTool;
private JLabel time;
private JLabel labelTime;
private JLabel bombNum;
private JLabel labelBombNum;
private JMenuBar menuBar;
private JMenu menuE, menuH;
private JMenuItem menuItemCZ, menuItemSZ;
private int numBomb, countTime, leaveBomb, numEnd;
private int myRows, myColumns;
private int xis, yis;
private Timer timer;
private ExtendButton[] myButton = null;
etPostion(i);
[i].setIcon((new ShowNum(10)).getImageIcon());
[i].setButton_num(0);
[i].SetVisited(false);
[i].SetStatus(false);
ddMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
if (() == ) {
int n =
((ExtendButton)()).getButton_num();
if(n == 1) {
if(!((ExtendButton)()).GetVisited()) {
((ExtendButton)()).setButton_num(0);
((ExtendButton)()).setIcon((new
ShowNum(10)).getImageIcon());
leaveBomb++;
(leaveBomb));
}
} else {
if(!((ExtendButton)()).GetVisited()) {
((ExtendButton)()).setButton_num(1);
((ExtendButton)()).setIcon((new
ShowNum(11)).getImageIcon());
leaveBomb--;
(leaveBomb));
}
}
}
}
});
[i].addActionListener(this);
}
();
;
show();
etVisited(false);
[i].SetStatus(false);
[i].setText(null);
[i].setIcon((new ShowNum(10)).getImageIcon());
}
(numBomb);
= 0;
= numBomb;
= * - leaveBomb;
}
etStatus()) {
[tempint].SetStatus(true);
counter++;
}
}
}
etStatus()) {
[i].setIcon((new
ShowNum(9)).getImageIcon());
}
}
}
etStatus() && !myButton[CircleNum[i]].GetVisited()) {
temp++;
}
}
}
etImageIcon());
temp = 0;
} else if(temp == 0) {
(true);
((new ShowNum(0)).getImageIcon());
for (int i = 0; i < 8; i++) {
if(CircleNum[i] != -1
&& !myButton[CircleNum[i]].GetVisited()) {
CheckButton(myButton[CircleNum[i]]);
}
}
}
;
if == 0) {
(this, "恭喜你!", "消息", ;