El enunciado dice que el enroque sólo se puede realizar cuando el rey y la torre se encuentran en las posiciones de inicio de partida. ¿No debería decir que sólo se puede hacer cuando ni el rey ni la torre han sido movidos y el rey no está en jaque?
El enunciado es correcto, no hay que perder de vista que esto no es el ajedrez real. Las reglas del juego son estrictamente las que aparecen en el enunciado, y si existen dudas lo mejor es comprobar el comportamiento del simulador.
¿Cómo puedo validar que el nombre del fichero que introduce el usuario sea correcto?
Se puede suponer que el nombre del fichero que introduce el usuario es siempre correcto. Dicho de otra forma, si el programa falla por culpa de un nombre de fichero erroneo no es responsabilidad del alumno.
¿Es necesario comprobar que el carácter que separa la casilla origen de la de destino sea un guión?
En la evaluación de la práctica las jugadas válidas siempre tendrán un guion como separador, por lo que da igual que se haga la comprobación o no.
¿Que debe hacer el programa cuando la jugada leída sea erronea? ¿Volver a pedirla? ¿Se almacena esa jugada erronea en el fichero?
El enunciado dice que si una jugada es erronea se debe volver a pedir al usuario hasta que sea correcta (o introduzca la cadena "Q"). Esto no se aplica cuando se lee de un fichero, el enunciado explica que en ese caso se detiene la lectura de jugadas por fichero y se pasa a pedir jugadas al usuario.
Entonces, si el programa no almacena las jugadas erroneas, ¿Eso no significa que es imposible que un fichero de entrada contenga jugadas erroneas?
Todos los ficheros de partidas generados mediante el programa de la practica no pueden contener jugadas erroneas, pero hay que tener en cuenta que existen otras maneras de generar ficheros de partidas (con un editor de textos, por ejemplo).
¿Puedo definir mis propias unidades? (Es decir, dividir la práctica en varios ficheros)
No, la práctica debe presentarse en un único fichero.
¿Es necesario detectar como error el caso en que existan caracteres adicionales tras los 5 primeros que definen la jugada (ej. 2D-2CPepe)?
No es necesario tener en cuenta esa situación. Es decir, se considera igual de válido que el programa lo considere como error como que lo considere jugada válida (siempre, claro está, que sólo tenga en cuenta los 5 primeros caracteres).
¿Qué pasa si utilizo el mismo fichero para leer una partida y almacenar la partida actual? ¿Debo permitirlo? ¿Debo controlarlo? ¿Cómo se debería comportar si lo controlase?
Se puede suponer que nunca va a suceder ese caso, es decir que el usuario siempre va a dar nombres de ficheros distintos. Tampoco es necesario que el programa compruebe que los nombres son realmente distintos.
Cuando muere un rey, ¿he de eliminar sus piezas del tablero?
No. La única consecuencia de la captura de un rey es que el bando al que pertenece ya no vuelve a jugar (le salta el turno). Si se tienen más dudas de lo que sucede cuando se captura a un rey, lo mejor es utilizar el simulador.
En todos los ejemplos del enunciado se indican todas las jugadas con mayúsculas. ¿He de admitir minúsculas? ¿He de dar error?
Libremente. No es obligatorio admitirlas, pero tampoco es necesario dar error. Si su programa las entiende, mejor. Pero si no las entiende, tampoco pasa nada.
Mi programa "funciona" correctamente, pero cuando pongo las opciones {$R+} y {$B+} da un error. ¿Es necesario que lo corrija?
Por supuesto. Este tipo de situación indica que en algún punto de la ejecución se intenta acceder a posiciones inexistentes de un array, y por lo tanto el programa es erroneo.
Los programas que se presenten deben cumplir exactamente las normas especificadas en el enunciado, y eso incluye las opciones de compilación {$R+} y {$B+}.
¿Me puedo llevar a casa el simulador de la práctica?
No, el simulador está "pegado" a la página web: Es el propio navegador el que ejecuta el programa del simulador, y no se puede "salvar" el programa junto con la página.