Subido por Santiago Escobar Romero

Avance del proyecto final

Anuncio
Avance del proyecto final
Tablero de ajedrez:
Primero especificamos algunas de las restricciones que debe tener el programa:
1. La nomenclatura de las piezas ingresadas por el usuario debe ser la misma que la que
usa el programa para ejecutar su algoritmo, de lo contrario este no podrá correr.
2. Las posiciones de cada una de las fichas que ingresa el usuario deben estar en el rango
del mismo tablero, este es desde la letra “A” hasta la letra “H”, y desde el número 1
hasta el número 8; si el usuario ingresa alguna letra o algún número que no
corresponde a dicho rango, entonces el programa no correrá.
3. El rango de movimiento de las piezas del tablero de ajedrez deberá ser de la siguiente
manera:
 El peón: este sólo podrá moverse en dos sentidos, el primero es hacia adelante
una casilla si no tiene ninguna otra pieza que obstruya su paso, pero también
podrá moverse dos casillas hacia adelante si todavía está en su posición inicial
de juego, el segundo tipo de movimiento es en diagonal hacia arriba una
casilla (noroeste o noreste), pero sólo podrá hacer este tipo de movimiento si
va a comerse una pieza del oponente, de lo contrario no podrá moverse de esta
manera.
 La torre: esta sólo puede moverse hacia las casillas de los lados, del frente o
de atrás, lo podrá hacer sólo si no hay piezas que se interpongan en su
trayectoria, pero podrá comerse una pieza del oponente si esta ocupa un lugar
que esté en su intervalos de recorrido.
 El alfil: Este es muy similar a la torre, con la diferencia de que sólo se mueve
en diagonal, operan las misma restricciones que tiene la torre pero hay una
condición nueva, y es que cada jugador tendrá dos alfiles, uno tendrá un
recorrido que va sólo por las casillas de un color y el otro irá por el otro color,
entonces cada alfil sólo podrá moverse en diagonal según su color asociado.
 El caballo: este tendrá un tipo de movimiento bastante peculiar, y es que para
moverse de una casilla a otra sólo lo podrá hacer desplazándose dos casillas
hacia un lado, ya sea hacia arriba o abajo o hacia los lados, y después se
desplazará una casilla hacia el lado perpendicular a la trayectoria que acabó
de ejecutar, el caballo podrá “saltarse” otras piezas que estén en su trayectoria
de movimiento pero que no estén en el punto final de su movimiento, a no ser
que vaya a comerse la pieza que ocupe ese lugar.
 La reina: esta será la pieza que tendrá todos los rangos de movimiento de todas
las fichas exceptuando el caballo, operan las mismas restricciones de
movimiento de las otras piezas exceptuando la del caballo.
 El rey: esta pieza sólo podrá moverse una casilla en cualquier dirección y
podrá comer cualquier pieza enemiga que se encuentre allí, ya sea en diagonal
o hacia los lados o hacia arriba o abajo, pero sólo podrá hacerlo si al moverse
hacia esa casilla no queda amenazado por una pieza del oponente para que
esta se lo coma.
Si el usuario ingresa dos fichas de manera correcta y sus posiciones en el tablero, el programa
deberá devolver una respuesta diciendo si tal ficha puede comerse a tal otra, y esto lo hará
por medio de un algoritmo que tendrá como eje principal el manejo de listas de listas, las
piezas ingresadas por el usuario tendrán una posición desde 0 hasta 7 de una de las 8 listas
que tiene nuestro tablero, además también al ingresar la posición que tiene las piezas en las
listas, también deberá ingresar las posiciones de las fichas en las otras 8 listas. En resumen,
el usuario ingresará una letra y un número para indicar la posición de una ficha, el número
significa la posición de la pieza en una lista y la letra significa la lista en la que se encuentra.
El algoritmo básicamente tendrá que leer la posición de la ficha, ver que si esté en el rango
del tablero, si así es, podrá ver las posibles casillas a las que puede moverse la pieza y luego
ver si en esas casillas está ubicada la otra pieza ingresada, si es así entonces el programa
mostrará un mensaje que diga que la ficha puede comerse a la otra; lo mismo se haría para la
segunda pieza.
En el código deberán ir varios condicionales “if” para ejecutar el filtro de las restricciones de
movimiento, las validaciones del rango del tablero y la nomenclatura de las piezas ingresadas
por el usuario.
Descargar