Cómo utilizar Java para hacer un programa buscaminas, sé original.
Bien hecho, puntos extra 100.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;< / p>
/**
* Un panel que muestra todos los botones
* @ Administrador de autores
*
* /
la clase pública AllButtonPanel extiende JPanel implementa ActionListener{
private int row; //row Count
private int col //columnas
private int mineCount; //minas
private MineButton[][] allButtons; //todos los botones
public AllButtonPanel (int fila, int col, int mineCount){
this.row=fila;
this.col=col;
this.mineCount=mineCount;
allButtons=new MineButton[fila] [col ];
createButtons();
createMine();
init()
}
init privado void(){
this.setLayout(new GridLayout(row, col));
for(int i=0; ilt; allButtons.length; i ) {
for(int j=0;jlt;allButtons[i].length;j){<
this.add(allButtons[i][j]);
p>}
}
}
}
/**
* Aleatorización Bray método
*
*
*
private void createMine(){
int n=0;
while(nlt;mineCount){//Generar minas mineCount aleatorias
int i=(int)(Math.random()*row);
int j=(int)(Math.random()* col);
if(allButtons[i][j].getCountOfSurroundMines()! =-1){
allButtons [i][j].setCountOfSurroundMines(-1);
n ;
}
}
for(int i = 0;ilt;allButtons.length;i ){ //calcula el número de minas circundantes en cada posición<
/p>
for(int j=0; jlt; allButtons[i].length; j ){
if(allButtons[i][j].getCountOfSurroundMines()! =-1) {
allButtons[i][j].setCountOfSurroundMines(getSurroundMineCount(i, j));
}
}
}
}
****
* Calcular (i.j) el número de minas en 8 posiciones alrededor de la coordenada, j) el número de minas en 8 posiciones alrededor de la coordenada Cantidad
* @param data
* @param i
* @param j
* @return p>
*/
private int getSurroundMineCount(int i, int j){
int num=0 //Calcular el número de minas circundantes
if(i -1gt;=0amp;j-1gt;=0){
num =(allButtons[i-1][j-1].getCountOfSurroundMines()==-1?1 :0) ;
}
if(i-1gt;=0){
num =(allButtons[i-1][j].getCountOfSurroundMines ()= =-1?1:0);
}
if(i-1gt;=0amp;amp;j 1lt;allButtons[0].length){
num =(allButtons[i-1][j 1].getCountOfSurroundMines()==-1?getCountOfSurroundMines()==-1 ?1:0);
}
if(j-1gt;=0){
num =(allButtons[i][j-1].getCountOfSurroundMines()==-1?1:0);
}
if(j 1lt. allButtons[0].length){
num =(allButtons[i][j 1].getCountOfSurroundMines()= =-1 ?1:0);
}
if(i 1lt; allButtons.length&j-1gt;=0){
num = ( allButtons[i 1][j-1].getCountOfSurroundMines()==-1?1:0);
}
if(i 1lt.allButtons.length){
num =(allButtons[i 1][j-1].getCountOfSurroundMines()==-1?allButtons.length){
num =(allButtons[i 1][ j ].getCountOfSurroundMines()==-1?1:0);
}
if(i 1lt; allBu
ttons.length &j 1lt;allButtons[0].length){
num =(allButtons[i 1][j 1].getCountOfSurroundMines()==-1?1:0) ;
}
return num
}
/**
* Generar botón
*
*/
private void createButtons(){
for(int i=0; ilt; allButtons.length; i ) { p>
for(int j=0;jlt;allButtons[i].length;j){
allButtons[i][j]=new MineButton(i,j);
allButtons[i][j].setSize(6, 6);
allButtons[i][j].remainMine.setText(remain ""); b.setText("amp;");
}else if(b.getText().equals("amp;")){
permanecer ;
CleanMine.remainMine.setText(permanecer "");
b.setText("");
}
}
}
}
});
}
}
}
public void actionPerformed(ActionEvent e) {//Método para escuchar eventos de clic
MineButton b=(MineButton)e.getSource();
int r= b.getRow( );
int c = b.getCol();
if(allButtons[r][c].getCountOfSurroundMines() == -1){// si es una mina
for(int i=0;ilt;allButtons.length;i){//poner todos los botones Mostrarlos todos
for(int j=0;jlt ; allButtons[i ].getCountOfSurroundMines()==0){// Si la posición está vacía (la posición no es una mina y no hay minas en las 8 posiciones circundantes)
allButtons[i][j] .setText ("");
allButtons[i][j].setBackground(Color.CYAN);
}else{/Si la posición no es mía, pero hay son minas en las 8 posiciones circundantes
allButtons[i][j].setText(Color.CYAN);