viernes, 6 de diciembre de 2013

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);
                     
                     
                     
                    }
                }
             
             
             
            }

1 comentario: