Buscaminas en Java
viernes, 6 de diciembre de 2013
Programacion Buscaminas
En nuestro ActionPerformed
creamos otro cuadro que sera el que se oprima, creamos un if que nos dirá si el botón que oprimimos esta minado salga un mensaje diciendo que Perdió, y si no pinte el cuadro de un color, y que valla contando el numero de cuadros, si el numero del cuadro menos el contador de minas es igual al contador, el usuario gana, es decir el num de cuadros generados - las minas= contador significa que ya todos los cuadros ya están evaluados
El Código es:
public void actionPerformed(ActionEvent e)
{
Cuadro temp2= (Cuadro) e.getSource(); // evento a q cuadro se oprimio
if(temp2.estaMinado())
{
javax.swing.JOptionPane.showMessageDialog(this,":O Mina ¡¡ Perdiste !! ");
this.contador=0;// si se pierde el contador es cero
}
else
{
temp2.setBackground(Color.BLUE);
contador++;
if((numeroCuadro-contadorMinas)==contador)
javax.swing.JOptionPane.showMessageDialog(this,"Ganaste !! ");
}
}
creamos otro cuadro que sera el que se oprima, creamos un if que nos dirá si el botón que oprimimos esta minado salga un mensaje diciendo que Perdió, y si no pinte el cuadro de un color, y que valla contando el numero de cuadros, si el numero del cuadro menos el contador de minas es igual al contador, el usuario gana, es decir el num de cuadros generados - las minas= contador significa que ya todos los cuadros ya están evaluados
El Código es:
public void actionPerformed(ActionEvent e)
{
Cuadro temp2= (Cuadro) e.getSource(); // evento a q cuadro se oprimio
if(temp2.estaMinado())
{
javax.swing.JOptionPane.showMessageDialog(this,":O Mina ¡¡ Perdiste !! ");
this.contador=0;// si se pierde el contador es cero
}
else
{
temp2.setBackground(Color.BLUE);
contador++;
if((numeroCuadro-contadorMinas)==contador)
javax.swing.JOptionPane.showMessageDialog(this,"Ganaste !! ");
}
}
Programacion Buscaminas
En nuestra ventana principal
El botón comenzar tendrá un Action Performed, el cual se activara cuando se le de click al botón
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
iniciar();
this.paintAll(this.getGraphics()); // va a pintar toda la interfaz grafica
}
Creamos un metodo que va a inicializar el juego el cual tendra dos enteros siendo filas, columnas, el cual apartir del Text se conseguirla lo que ingrese y se convertira en un entero, creamos un Layout que nos dibujara la fila y columnas.
creamos dos for que cuenten nuestras filas y columnas, para que cada vez se genere un ciclo se cree un nuevo boton, creamos un nuevo cuadro le asignamos el color que tendrá, le agregamos al cuadro el ActionListener para ejecutar cuando se oprima un boton,.
creamos dos contadores el cual sera contador de numero de cuadros y minas .
Llevando el siguiente código
private void iniciar ()
{
this.panel_juego.removeAll(); //borra los objetos para volver a empezar
int nFilas, nColumnas;
nFilas=Integer.parseInt(this.filas.getText()); //obtiene el texto y lo coloque en filas, convirtiendolo en un num entero y lo guarde en nFilas
nColumnas=Integer.parseInt(this.columnas.getText());
this.panel_juego.setLayout(new java.awt.GridLayout(nFilas,nColumnas)); //al ejecutar se crea el layout
this.numeroCuadro=nFilas*nColumnas ;
this.contadorMinas=0; //para cundo reinicie el juego vuelva a cero
for (int i=0;i<nFilas;i++)
{
for(int j=0;j<nColumnas;j++)
//cada vez que se haga el ciclo se gener un nuevo boton
{
Cuadro temp=new Cuadro (); // creamos el cuadro
temp.setBackground(Color.BLACK);
temp.addActionListener(this); //escuchador todos los botones generados ejecutara el metodo de Action
if(temp.estaMinado())
this.contadorMinas++;
temp.setVisible(true);
this.panel_juego.add(temp);
}
}
}
El botón comenzar tendrá un Action Performed, el cual se activara cuando se le de click al botón
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
iniciar();
this.paintAll(this.getGraphics()); // va a pintar toda la interfaz grafica
}
Creamos un metodo que va a inicializar el juego el cual tendra dos enteros siendo filas, columnas, el cual apartir del Text se conseguirla lo que ingrese y se convertira en un entero, creamos un Layout que nos dibujara la fila y columnas.
creamos dos for que cuenten nuestras filas y columnas, para que cada vez se genere un ciclo se cree un nuevo boton, creamos un nuevo cuadro le asignamos el color que tendrá, le agregamos al cuadro el ActionListener para ejecutar cuando se oprima un boton,.
creamos dos contadores el cual sera contador de numero de cuadros y minas .
Llevando el siguiente código
private void iniciar ()
{
this.panel_juego.removeAll(); //borra los objetos para volver a empezar
int nFilas, nColumnas;
nFilas=Integer.parseInt(this.filas.getText()); //obtiene el texto y lo coloque en filas, convirtiendolo en un num entero y lo guarde en nFilas
nColumnas=Integer.parseInt(this.columnas.getText());
this.panel_juego.setLayout(new java.awt.GridLayout(nFilas,nColumnas)); //al ejecutar se crea el layout
this.numeroCuadro=nFilas*nColumnas ;
this.contadorMinas=0; //para cundo reinicie el juego vuelva a cero
for (int i=0;i<nFilas;i++)
{
for(int j=0;j<nColumnas;j++)
//cada vez que se haga el ciclo se gener un nuevo boton
{
Cuadro temp=new Cuadro (); // creamos el cuadro
temp.setBackground(Color.BLACK);
temp.addActionListener(this); //escuchador todos los botones generados ejecutara el metodo de Action
if(temp.estaMinado())
this.contadorMinas++;
temp.setVisible(true);
this.panel_juego.add(temp);
}
}
}
Programando Buscaminas
Creamos una clase nueva llamada Cuadro la cual va a extender a un JButton, ya que los cuadros van a ser botones, esta clase va a tener una propiedad que va a ser una mina( puede que sea verdadera o falso si un cuadro tiene una mina), se crea una variable random, la cual va a tener un valor aleatorio para definir si un cuadro tiene una mina, craos un metodo boolean llamado estaMinado el cual va a regresar el valor de mina, y si esta minado es verdadero, y si no falso.
El código es el siguiente
public class Cuadro extends JButton{
private boolean mina;
public Cuadro ()
{
super (); //llama al constructor de la clase de la que se hereda "extends"
double random = Math.random();
if(random>0.8)
mina=true;
else
mina=false;
}
public boolean estaMinado()
{
return mina;
}
}
El código es el siguiente
public class Cuadro extends JButton{
private boolean mina;
public Cuadro ()
{
super (); //llama al constructor de la clase de la que se hereda "extends"
double random = Math.random();
if(random>0.8)
mina=true;
else
mina=false;
}
public boolean estaMinado()
{
return mina;
}
}
Programando Buscaminas
Para hacer visible nuestra ventana, creamos en nuestra clase principal Buscaminas, creando un objeto de la clase Ventana Principal, la cual agregamos un titulo, la hacemos visible y la localizamos a la mitad de la pantalla.
Llevando el siguiente código
VentanaPrincipal v= new VentanaPrincipal();
v.setTitle("Buscaminas");
v.setVisible(true);
v.setLocationRelativeTo(null);
Llevando el siguiente código
VentanaPrincipal v= new VentanaPrincipal();
v.setTitle("Buscaminas");
v.setVisible(true);
v.setLocationRelativeTo(null);
Programar Buscaminas
para programar un buscaminas fácil debemos crear un proyecto en netbeans llamado Buscaminas, de hay creamos un J Frame Form, el cual estará el diseño de nuestra ventana, el cual constara de 2 Panel, en el primero ira los controles los cuales sera 2 Jlabel( el cual se llamaran una filas y la otra columnas) y 2 TextArea( el cual ira vació y tendrá como nombre de variable columna y filas, esto sera para que el usuario ingrese la dimensión del tablero), agregamos un botón que llamaremos comenzar, el segundo Panel lo dejamos vació y lo renombrado como panel_juego.
Nuestra ventana quedara así.
Nuestra ventana quedara así.
Buscaminas
Es un videojuego para un jugador inventado por Robert Donner en 1989. El objetivo del juego es despejar un campo de minas sin detonar ninguna.
¿En que consiste e juego?
El juego consiste en despejar todas las casillas de una pantalla que no oculten una mina.
Si se descubre una casilla con una mina se pierde la partida
se puede personalizar la dificultad de juego según el tamaño de la pantalla.
¿En que consiste e juego?
El juego consiste en despejar todas las casillas de una pantalla que no oculten una mina.
Si se descubre una casilla con una mina se pierde la partida
se puede personalizar la dificultad de juego según el tamaño de la pantalla.
Suscribirse a:
Entradas (Atom)