Anda di halaman 1dari 3

PROGRAMACIN

ENUNCIADO PRCTICA 2 EVALUACIN


Implementar un ajedrez en Java mediante POO, utilizando todas las ventajas vistas en
clase de dicha metodologa de programacin. La prctica se realizar en horario de
clase, de forma que el profesor pueda ir viendo la evolucin de la misma. Se podr
hacer trabajo en casa, pero en todo momento el alumno debe ser capaz de demostrar que
ha sido el autor del mismo.
Requisitos funcionales:
1. Ajedrez en consola que solicite, conforme el turno del jugador (piezas blancas o
negras) una jugada. Ejemplo: C3C4. El programa chequear la jugada y si el
movimiento es correcto la efectuar cambiando el turno al otro jugador.
2. Versin Bsica: movimiento definido en todas las piezas, con el fin de juego
definido por el recuento ponderado (valor diferente a cada pieza) de las piezas
de cada color que quedan en el tablero. Documentacin en javadoc. Nota
mxima: 7,5.
http://www.lab.dit.upm.es/~lprg/material/apuntes/doc/doc.htm
3. Versin Avanzada: nota mxima: 10. Cada opcin suma 1 punto, excepto la
promocin del pen que suma 0,5 puntos.
a. Enroque
b. Promocin del Pen
c. Jaque
d. JaqueMate
4. Utilizacin de la grfica (awt, swing): 1 punto a subir a la nota final de la
evaluacin, y si sobrepasa la mxima nota (10), se tendr en cuenta en la tercera
evaluacin.
A continuacin se facilita un guin posible para su implementacin:
8
7
6
5
4
3
2
1

A
T
P

B
C
P

C
A
P

D
D
P

E
R
P

F
A
P

G
C
P

H
T
P

P
T

P
C

P
A

P
D

P
R

P
A

P
C

P
T

Torre: vertical u horizontal (la cantidad que quiera mientras haya sitios libres)
Caballo: hace la L (2,1 1,2) en cualquier direccin
Alfil: diagonal (la cantidad que quiera mientras haya sitios libres)
Dama: todo menos caballo
Rey: movimiento uno a uno en 360
Pen: movimiento slo para adelante (cantidad 1) (Blancas (azules) aumentando fila,
Negras disminuyendo),comer en diagonal e inicio 1 2.

DISEO APLICACIONES MULTIPLATAFORMA

PROGRAMACIN

http://es.wikipedia.org/wiki/Reglamento_del_ajedrez
Clase posicion:

Datos: int fila, int columna


Mtodos:
o posicion(): inicializa la fila y la columna
o setFila(): inicializa fila
o setColumna(): inicializa columna
o getFila(): devuelve fila
o getColumna(): devuelve columna

Clase Movimiento:

Datos: posInicial, posFinal


Mtodos:
o Movimiento (): comprueba que el movimiento introducido por el
usuario est dentro de los lmites del tablero (8x8) e inicializa
posicin inicial y final.
o esVertical(): devuelve 0 si no lo es y distinto de 0 si lo es (ejem. 1)
o esHorizontal():
o esDiagonal():
o saltoHorizontal():devuelve la cantidad de salto horizontal
o saltoVertical():devuelve la cantidad de salto vertical

Clase Pieza:

Datos: color, nombre


Mtodos:
o Pieza (inicializar color)
o getColor (return color)
o validoMovimiento (abstract se define en las derivadas)
o pintarPieza (abstract se define en las derivadas o mediante el
atributo nombre, inicializado en cada clase hija)
o moverPieza (llamar a la anterior y si es valido llamar a mover pieza
de tablero->borrar de la pos inicial y pintar en la pos final)

Tablero: array de 64 casillas donde puede haber o no


una pieza (pieza Tabla[8][8])
Tabla[fila][columna]
public boolean hayPieza(int fila,int columna)
public boolean hayPieza(Posicion pos)
public boolean hayPiezasEntre(Movimiento mov)
public void ponPieza(Pieza figura, int fila, int columna)
public void ponPieza(Pieza figura, Posicion Pos)
public void quitaPieza(int fila,int columna)
public void QuitaPieza(Posicion pos)
public Pieza DevuelvePieza(int fila,int columna){
return Tabla[fila][columna];
DISEO APLICACIONES MULTIPLATAFORMA

PROGRAMACIN
}
public Pieza DevuelvePieza(Posicion pos)
public void Mover(Movimiento mov){}
public boolean esValido(int valor){ return (1=<valor<=8);}+

Clase Juego:
public class Juego{
private int elTurno; //0->Negras 1->Blancas
public int getTurno(){ return elTurno;}
public void setTurno()
public inicializar(Pieza Tabla[64])
public void pintar(Pieza Tabla[64])
public void jugada(String jugada, Pieza Tabla[64])
public void moverJuego(Movimiento mov, Pieza Tabla[64])
}
Por ltimo se recomienda un grado de avance similar a:
Primera semana (para el da 17 de Febrero): conseguir que una pieza,
ejemplo Torre, a partir de la jugada introducida por el usuario se mueva. (Sin
tener en cuenta el mtodo hayPiezasEntre()).
Segunda semana (para el da 24 de Febrero): conseguir la versin bsica del
ajedrez. Todas las piezas se mueven conforme su movimiento, e incluso se tiene
en cuenta tener en cuenta el mtodo hayPiezasEntre()).
Tercera semana (para el da 1 de Marzo): conseguir 3 puntos de la versin
avanzada y/o grfica.
Se recuerda que el cdigo deber ir documentado con javadoc.

DISEO APLICACIONES MULTIPLATAFORMA

Anda mungkin juga menyukai