Gato
import java.util.Arrays;
import javax.swing.*;
import java.awt.*;
import java.lang.Runnable;
public class Gato extends javax.swing.JFrame implements Runnable {
/*Atributos de nuestro gato.*/
/*Modelo de juego.*/
Modelo modelo;
/*Jugadores.*/
Jugador jugador1, jugador2;
ComputadoraIA computadora;
boolean jugando, terminado;public final int HOMBREvsHOMBRE = 1;
public final int HOMBREvsCOMPUTADORA = 2;
public final int JUGADOR1 = 1;
public final int JUGADOR2 = 2;
public boolean PENSANDO = false;
/*Turno de jugador.*/
int turno = 0;
int turnoGeneral = 0;
/*Matriz que representa el juego.*/
int[] tablero = new int[9];
/*Tablero en componentes.*/JLabel fichas[];
/*Estadisticas.*/
Estadisticas estadisticas = new Estadisticas();
/*Configuracion.*/
Configurar config = new Configurar();
/*Sonidos.*/
Sonidos sonido = new Sonidos();
/*Construir un nuevo Gato*/
public Gato() {
/*LLenamos nuestro tablero de 0, vacío.*/
Arrays.fill(tablero,0);/*Iniciamos los componentes de nuestra ventana*/
initComponents();
iniciarComponentes();
}
public void run(){
}
/*Método que ejecuta las operaciones al poner una ficha.*/
public void movimiento( JLabel ficha ){
/*Colocamos la ficha.*/
if ( jugando ){
/*Reproducimos el sonido.*/sonido.sonidoFicha();
if( !PENSANDO )
ponerFicha( ficha );
if ( this.modelo.tipo_juego == HOMBREvsCOMPUTADORA && this.turno == JUGADOR2 ){
PENSANDO = true;
ponerFichaCPU(computadora.movimiento( this.tablero ));
PENSANDO = false;/*Reproducimos el sonido.*/
sonido.sonidoFicha();
}
}
/*Si se va a comenzar un juego nuevo*/
if( terminado ){
reiniciarJuego();
return;
}
/*Preguntamos si el juego termino o alguien ganó.*/
if ( terminado() != 0){
/*Sonido*/sonido.sonidoGano();
/*Asignamos resultados.*/
if ( terminado() == 1 ){
jugador1.gano();
jugador2.perdio();
mensaje(jugador1.nombre + " ganó!");
}else{
jugador2.gano();
jugador1.perdio();
mensaje(jugador2.nombre + " ganó!");
}/*Mostramos la información.*/
mostrarInformacion();
/*Detenemos el juego actual.*/
jugando = false;
terminado = true;
} else if ( lleno() ){
/*Asignamos resultados.*/
jugador1.empato();
jugador2.empato();
mensaje("Empate!");/*Mostramos la información.*/
mostrarInformacion();
/*Detenemos el juego actual.*/
jugando = false;
terminado = true;
}
/*Movemos el foco al otro jugador.*/
cambiarFoco();
}
/*Método que pone una ficha por la computadora.*/
public void ponerFichaCPU( intindice ){
if( indice == -1 ) return;
switch ( indice ){
case 0: this.f1.setIcon( jugador2.obtenFicha() ); break;
case 1: this.f2.setIcon( jugador2.obtenFicha() ); break;
case 2: this.f3.setIcon( jugador2.obtenFicha() ); break;
case 3: this.f4.setIcon( jugador2.obtenFicha() ); break;
case 4:...
Regístrate para leer el documento completo.