Damas Chinas JAVA
Enviado por criistianaaron • 15 de Julio de 2014 • 2.568 Palabras (11 Páginas) • 764 Visitas
Universidad De Oriente
Núcleo Anzoátegui
Departamento de computación y sistemas
Lenguajes de programación
Profesor: Bachiller:
Victor Mujica Freddy González
CI. 193673.244
Barcelona, 10 de junio de 2009
Justificación
El proyecto consiste en realizar una aplicación en Java donde se pueda jugar Damas Anglo-Americanas en diferentes modalidades (Humano vs Humano, Humano vs Computadora o Computadora vs Computadora). La maquina virtual de java donde fue compilado e interpretado el programa durante las pruebas fue JDK versión 1.6.0_13 y realizado en el entorno de trabajo JCreator Pro versión 4.50.
Ideas fundamentales
El tablero es visualizado como un plano cartesiano con unidades discretas de tamaño 8x8 tal como se muestra en la figura.
Bajo esta visión se realizan métodos para la validación de un movimiento, según las reglas del juego, y el análisis de la jugada de la computadora.
Para la validación de un movimiento realizado por el usuario se utilizaron sentencias selectivas if preguntando si cumple con cada una de las reglas del juego y para el análisis del movimiento realizado por el computador se van buscando opciones de jugadas bajo diferentes condiciones hasta encontrar la que se desea realizar; por ejemplo, si no puede comer y tiene una ficha amenazada, se busca primero un movimiento que tape la casilla donde quedará la ficha enemiga después de comer, si no la encuentra busca alguna casilla donde huir de esa amenaza y que ninguna otra ficha quede amenazada, en caso de que no se exista ningún movimiento con las anteriores características realiza algún movimiento al azar.
Paquetes
Para la elaboración del programa se distribuyeron las diferentes clases utilizadas en paquetes, cada uno de éstos cumple con una función específica. Adicionalmente a esto fue creada una carpeta donde se colocaron las imágenes necesarias para la visualización de las piezas y el tablero del juego.
El paquete “interfaz” contiene las clases que forman parte de la interfaz grafica del programa, tales como los frames y dialogs usados durante la elaboración de la aplicación. El paquete “damas” contienen las clases que gestionan el juego, se encarga la colocación de tablero y las fichas, el movimiento de las fichas y realizar el análisis del juego para optimizar el movimiento del computador en las modalidades “Humano vs Computador” y “Computador vs Computador”.
A continuación se esquematizará la distribución de los archivos “.class” dentro del ejecutable.
Damas.jar
damas
FichaNegra.class
FichaRoja.class
Fichas.class
GestorFichas.class
GestorMovimiento.class
Movimiento.class
Tablero.class
interfaz
AcercaDe.class
NuevoJuego.class
PrincipalJuego$1.class
PrincipalJuego.class
Main.class
La carpeta “META-INF” que se encuentra en Damas.jar no fue colocada en el esquema debido a que no contiene ningún archivo “.class”. En esta carpeta se encuentra un archivo que indica al la maquina virtual de Java cual es el archivo que contiene el método “main”, en esta aplicación se encuentra en el método “Main.class”.
Clases, atributos y métodos.
• Clase Fichas
Es una clase Abstracta utilizada como clase padre de FichaNegra y FichaRoja contiene métodos básicos para la utilización de las fichas, como son mover la ficha de una coordenada a otra, coronar (Convertir peón en dama), seleccionar la ficha, etcétera. Los métodos abstractos son acciones propias de cada tipo de ficha sea negra o roja y se encuentran descritos en las clases que les corresponden. Esta clase hereda de JLabel de esta forma se puede utilizar como una etiqueta que se moverá por el tablero y puede contener una imagen que en este caso será la figura de la ficha, algunos de los métodos son abstractos debido a que las imágenes son diferentes para las fichas negras que para las rojas.
Se declararon constantes donde son cargadas las imágenes, para evitar un posible retardo, cada vez que se instancia una ficha o cuando se cambie la imagen que contiene la etiqueta.
Clase Abstracta Fichas (extiende de JLabel)
Atributos
protected static final ImageIcon ROJA_N Contiene la imagen de un peón roja no seleccionada.
protected static final ImageIcon NEGRA_N Contiene la imagen de un peón negro no seleccionada
protected static final ImageIcon ROJA_S Contiene la imagen de un peón roja seleccionada
protected static final ImageIcon NEGRA_S Contiene la imagen de un peón negro seleccionada
protected static final ImageIcon ROJA_RN Contiene la imagen de una dama roja no seleccionada
protected static final ImageIcon NEGRA_RN Contiene la imagen de una dama negra no seleccionada
protected static final ImageIcon ROJA_RS Contiene la imagen de una dama roja seleccionada
protected static final ImageIcon NEGRA_RS Contiene la imagen de una dama negra seleccionada
private boolean corona Es “true” si la ficha es una dama o “false” si es un peón.
private boolean selec; Es “true” si la ficha esta seleccionada o “false” si la ficha no está seleccionada
private int x Contiene la coordenada en “x” de la ficha en un tableo 8x8. (Puede tomar valores entre 1 y 8).
private int y Contiene la coordenada en “y” de la ficha en un tableo 8x8. (Puede tomar valores entre 1 y 8).
Constructores
Fichas(int x,int y) Recibe las coordenadas (x,y) en un tablero 8x8
Métodos
public int getXp() Devuelve la coordenada en “x”
public int getYp() Devuelve la coordenada en “y”
public boolean isSelect() Devuelve “true” si esta seleccionada la ficha o “false” si no lo está.
protected void select(boolean b) Fija si la ficha esta seleccionada.
public void moverFicha(int x,int y) Fija las coordenadas de la ficha
protected void corona() Fija
...