主题:求助~寻求Java枪手
aircheney
[专家分:0] 发布于 2008-06-02 11:06:00
寻求枪手编一份小型的Java扫雷程序(大二期末作业用),程序比较小,有同学一天就弄完。
价格再议
联系方式:
qq:121876343
e-mail:lincheney2002@gmail.com
回复列表 (共4个回复)
沙发
sjhlovejava [专家分:1690] 发布于 2008-06-02 12:09:00
这些时网上搜下来的较粗糙的代码,建议自己再完善完善,如加个“重新开始”,“计时”等
package ly.java.game;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
class ExtendButton extends JButton {
private int Button_Pos;
private boolean Button_Status;
private boolean Button_Visited;
public int SetPostion(int pos) {
this.Button_Pos = (pos >= 0 && pos <= 81) ? pos : 0;
return this.Button_Pos;
}
public int GetPostion() {
return this.Button_Pos;
}
public boolean SetStatus(boolean sta) {
this.Button_Status = sta;
return this.Button_Status;
}
public boolean GetStatus() {
return this.Button_Status;
}
public boolean Visited() {
return this.Button_Visited;
}
public boolean SetVisited(boolean vis) {
this.Button_Visited = vis;
return this.Button_Visited;
}
}
public class Game extends JFrame implements ActionListener {
private Container myContainer;
private GridLayout myLayout;
ExtendButton[] myButton = new ExtendButton[81];
private Game() {
this.setTitle("Game");
this.setSize(500, 500);
this.InitButton();
}
private void InitButton() {
myContainer = getContentPane();
myLayout = new GridLayout(9, 9, 1, 1);
myContainer.setLayout(myLayout);
for (int i = 0; i < 81; i++) {
myButton[i] = new ExtendButton();
myButton[i].SetPostion(i);
myContainer.add(myButton[i]);
myButton[i].addActionListener(this);
}
System.gc();
this.SetBomb(13);
show();
}
板凳
sjhlovejava [专家分:1690] 发布于 2008-06-02 12:09:00
private void SetBomb(int count) {
int counter = 0;
int tempint;
while (counter != count) {
tempint = (int) (Math.random() * 81);
if (!myButton[tempint].GetStatus()) {
myButton[tempint].SetStatus(true);
counter++;
}
}
}
private void ShowBomb() {
for (int i = 0; i < 81; i++) {
if (myButton[i].GetStatus()) {
myButton[i].setBackground(new Color(0, 0, 0));
}
}
}
private void CheckButton(ExtendButton TempButton) {
if (TempButton.GetStatus()) {
JOptionPane.showMessageDialog(null, "You Failed!", "Game",
JOptionPane.INFORMATION_MESSAGE);
this.ShowBomb();
return;
}
int[] CircleNum = new int[8];
int temp = 0;
if (!TempButton.Visited()) {
CircleNum[0] = TempButton.GetPostion() - 9;
CircleNum[0] = (CircleNum[0] < 0) ? -1 : CircleNum[0];
CircleNum[1] = TempButton.GetPostion() - 8;
CircleNum[1] = (CircleNum[1] < 0 || CircleNum[1] % 9 == 0) ? -1
: CircleNum[1];
CircleNum[2] = TempButton.GetPostion() + 1;
CircleNum[2] = (CircleNum[2] % 9 == 0) ? -1 : CircleNum[2];
CircleNum[3] = TempButton.GetPostion() + 10;
CircleNum[3] = (CircleNum[3] > 80 || CircleNum[3] % 9 == 0) ? -1
: CircleNum[3];
CircleNum[4] = TempButton.GetPostion() + 9;
CircleNum[4] = (CircleNum[4] > 80) ? -1 : CircleNum[4];
CircleNum[5] = TempButton.GetPostion() + 8;
CircleNum[5] = (CircleNum[5] > 80 || CircleNum[5] % 8 == 0) ? -1
: CircleNum[5];
CircleNum[6] = TempButton.GetPostion() - 1;
CircleNum[6] = (CircleNum[6] % 8 == 0) ? -1 : CircleNum[6];
CircleNum[7] = TempButton.GetPostion() - 10;
CircleNum[7] = (CircleNum[7] < 0 || CircleNum[7] % 8 == 0) ? -1
: CircleNum[7];
for (int i = 0; i < 8; i++) {
if (CircleNum[i] != -1) {
if (myButton[CircleNum[i]].GetStatus()
&& !myButton[CircleNum[i]].Visited())
temp++;
}
}
if (temp > 0) {
TempButton.SetVisited(true);
TempButton.setText(String.valueOf(temp));
temp = 0;
} else if (temp == 0) {
TempButton.SetVisited(true);
TempButton.setBackground(new Color(125, 152, 0));
for (int i = 0; i < 8; i++) {
if (CircleNum[i] != -1 && !myButton[CircleNum[i]].Visited()) {
CheckButton(myButton[CircleNum[i]]);
}
}
}
}
}
public void actionPerformed(ActionEvent e) {
CheckButton((ExtendButton) e.getSource());
}
public static void main(String[] args) {
Game newGame = new Game();
newGame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
3 楼
aircheney [专家分:0] 发布于 2008-06-02 15:43:00
谢谢高手!不过我想如果运用的话会被检测程序检测出来是网上的资源。
4 楼
sjhlovejava [专家分:1690] 发布于 2008-06-02 16:53:00
我不是高手
这是提供做个参考,理解了,就能写出自己的了
我来回复