Id$ * Universidad de los Andes (Bogotá - Col

Anuncio
InterfazTriqui
/**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* $Id$
* Universidad de los Andes (Bogotá - Colombia)
* Departamento de Ingeniería de Sistemas y Computación
* Licenciado bajo el esquema Academic Free License version 2.1
*
* Proyecto Cupi2
* Ejercicio: Triqui
* Autor inicial: Katalina Marcos
* Modificación: Jorge Jiménez- Junio 2005
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
package uniandes.cupi2.triqui.interfaz;
import import java.awt.BorderLayout;
java.awt.Dimension;
import import import javax.swing.JButton;
javax.swing.JFrame;
javax.swing.JOptionPane;
import import uniandes.cupi2.triqui.mundo.JugadorPC;
uniandes.cupi2.triqui.mundo.Triqui;
/**
public class {
* Interfaz gráfica del juego del triqui
*/
InterfazTriqui extends JFrame
// ----------------------------------------------------------------// Constantes
// ----------------------------------------------------------------/**
* Marca para el jugador humano
*/
private final static String MARCA_JUGADOR = "X"
;
/**
* Marca para el jugador PC
*/
private final static String MARCA_PC = ;
// ----------------------------------------------------------------// Atributos de Interfaz
// ----------------------------------------------------------------/**
"O"
1/6
InterfazTriqui
* Panel triqui
*/
private PanelTriqui triquiPanel;
/**
* Panel botones
*/
private PanelBotones botonesPanel;
/**
* Panel barra de mensajes
*/
private PanelMensajes mensajesPanel;
// ----------------------------------------------------------------// Atributos
// ----------------------------------------------------------------/**
* Juego de triqui
*/
private Triqui juegoTriqui;
/**
* Jugador PC
*/
private // ----------------------------------------------------------------// Constructores
// -----------------------------------------------------------------
/**
* Construye la interfaz del triqui
* @param */
public InterfazTriqui
{
// Tablero del Triqui
triquiPanel = new // Botones
botonesPanel = new // Mensajes
mensajesPanel = new setPreferredSize
add
JugadorPC jugadorPC;
( ( titulo Nombre que tendrá el Fram
( String ti
PanelTriqui
( PanelBotones
( PanelMensajes
( )
new Dimens
mensajesPanel, BorderLayout.N
)
2/6
InterfazTriqui
add
( add
( setTitle
( pack
( )
setResizable
( setDefaultCloseOperation
( triquiPanel, BorderLayout.CENT
)
botonesPanel, BorderLayout.SO
)
titulo )
;
false )
JFrame.EXIT_ON_CLOSE )
mensajesPanel.desplegarMensaje
( "Listo para jugar!" )
// Juego Triqui
juegoTriqui = new // Jugador PC del Triqui
jugadorPC = new Triqui
( )
JugadorPC
( }
// ----------------------------------------------------------------// Métodos
// -----------------------------------------------------------------
/**
* Prepara para iniciar otro juego
*/
public void {
// Limpia el tablero del triqui
juegoTriqui.limpiarTablero
( )
JButton botonReiniciar;
// Prepara la interfaz del tablero del triqui
for
( {
botonReiniciar = ( botonReiniciar.setEnabled
( botonReiniciar.setText ( }
}
/**
* Procesa la jugada del humano. Si es válido invita a jugar al PC
* @param casillaJugada Jugada por el hum
*/
public void procesaJugada
( {
nuevoJuego
( )
;
int i = JButton true "" )
)
)
3/6
InterfazTriqui
int // Obtiene el número de casilla
casilla = Integer.valueOf( // Indica al juego del triqui la casilla señalada por el humano
juegoTriqui.marcarCasilla
( casilla, MARCA_JUGADOR )
// Verifica si el humano ganó el juego
if
( {
mensajesPanel.desplegarMensaje
( JButton botonReiniciar;
// Al ganar se apaga el tablero
for
( {
botonReiniciar = ( botonReiniciar.setEnabled
( }
}
else
// Si no ganó el humano invita a jugar al PC
{
mensajesPanel.desplegarMensaje
( // si el PC pudo realizar una jugada
if
( {
// Verifica si ganó el jugador PC
if
( {
mensajesPanel.desplegarMensaje
( JButton botonReiniciar;
// Al ganar se apaga el tablero
for
( {
botonReiniciar = ( botonReiniciar.setEnabled
( }
}
else
// si no ganó el PC cede el turno
mensajesPanel.desplegarMensaje
( }
casilla;
casillaJugada )
juegoTriqui.ganoJuego ( "Ganaste!" )
int i = JButton false )
)
"Mi turno!" )
jugadorPC.jugar
( ) )
juegoTriqui.ganoJuego ( "Gané!" )
int i = JButton false )
)
"Tu turno" )
4/6
InterfazTriqui
else
{
// Si el jugador PC no pudo realizar la jugada es porque el
// juego ha terminado
mensajesPanel.desplegarMensaje
( "Se acabó el juego..." )
}
}
}
/**
* Pinta el tablero para reflejar las jugadas hechas
*/
public void repintarTriqui
{
String marca;
JButton botonReiniciar;
for
( int i = {
botonReiniciar = ( JButton )
// La marca de cada casilla no vacía la toma del juego
if
( !juegoTriqui.casillaVacia( {
marca = juegoTriqui.obtenerMarcaCasilla
( i )
botonReiniciar.setText ( marca )
botonReiniciar.setEnabled
( false )
}
}
}
// ----------------------------------------------------------------// Puntos de Extensión
// -----------------------------------------------------------------
/**
* Ejecuta la operación 1.<br>
* <b>
*/
public void {
String respuesta = juegoTriqui.metodo1
( )
JOptionPane.showMessageDialog
( }
( )
post: </b>
reqFuncOpcion1
( )
;
this, respuesta, "Respue
5/6
InterfazTriqui
/**
* Ejecuta la operación 2.<br>
* <b>
*/
public void {
String respuesta = juegoTriqui.metodo2
( )
JOptionPane.showMessageDialog
( }
}
/**
* Método principal de ejecución
* @param */
public static void {
InterfazTriqui gui = new gui.setVisible
( }
post: </b> reqFuncOpcion2
( )
;
this, respuesta, "Respue
args Argumentos de entrada pa
main
( InterfazTriqui
true ( )
6/6
Descargar