El 27 de Abril 2007
Hola:
Un juego de ajedrez es una trabajera.
Primero deberías hacer un grupo de clases que representen el tablero y las piezas, sin nada de parte visual. Puede ser algo como un array de 8x8 con las piezas dentro.
Luego un grupo de clases a las que les pases el tablero y sepan decirte si un movimiento es correcto o no, si hay jaques, etc, etc.Que indicándole una pieza te diga posibles posiciones a la que puede moverse, etc. Es decir, sólo las reglas de movimiento.
Otro grupo de clases que sean el algoritmo de pensar.
Le pasas la posición del tablero, las clases que se suponen que saben las reglas y viendo los posibles movimientos para cada pieza decida cual es el mejor.
Finalmente la interface de usuario. Esta recibiría las clases que representan el tablero y el conjunto de reglas, de forma que pueda validar si un movimiento del usuario es o no correcto.
De esta forma tendrías cuatro grupos de clases (tablero, reglas, algoritmo, interface de usuario) más o menos separadas y agrupadas en capas:
tablero es independiente de las demas
reglas solo debería ver a tablero.
algoritmo solo debería ver a tablero y reglas
interface de usuario sólo debería ver tabler y reglas
Finalmente, un grupo de clases que instancien, inicialicen y relacionen las unas con las otras. Por ejemplo, este grupo de clases es el que daría alternativamente a la interface de usuario y al algoritmo la posibilidad de jugar.
Se bueno.