Ayuda con práctica "Rush Hour"

Iniciado por Riblo, 13 Noviembre 2012, 09:45 AM

0 Miembros y 1 Visitante están viendo este tema.

Riblo


Buenas !!!

Tengo que presentar una práctica que consta de lo siguiente, según mi profesora se puede y se debe hacer lo más simple posible:

Implementación del Juego Rush Hour (Hora Punta) .El objetivo del juego es siempre el mismo, consiste en lograr sacar el coche rojo del atasco en el que se encuentra moviendo el resto de vehículos que le impiden llegar a la  salida.

Objetivos:

Tablero.

 El Tablero es una rejilla de tamaño 6x6 en la que se sitúan los vehículos.
 La casilla de salida (fila 3, columna 6), es la casilla por la que se debe
sacar el coche rojo del atasco.

Vehículos.

 Los vehículos se disponen siempre en el tablero en posición  vertical u
horizontal
 El coche rojo, siempre debe estar en la fila de la salida del Tablero (fila
3, columna 1).
 Los vehículos pueden desplazarse: hacia derecha o izquierda si están en
posición horizontal, o hacia arriba o  hacia  abajo si están en posición
vertical.
 Los vehículos pueden desplazarse cualquier número de casillas, mientras
no colisionen con otros vehículos.
 Si logramos situar al coche rojo en la salida (casilla de la fila 3, columna
6) el problema se habrá resuelto.
 Hay dos tipos de vehículos:
1. Coches: ocupan 2 casillas
2. Camiones: ocupan 3 casillas

El programa estará formado por dos partes fundamentales, la primera permitirá definir  el tablero y crear el estado inicial para la partida, y la segunda permitirá al usuario jugar.

1. Generador de la estado inicial de la partida:
(1) El programa debe permitir al usuario crear un problema nuevo, es decir,
decidir la situación inicial de los coches en el atasco.
(2) El coche rojo siempre parte de una posición inicial fija: fila 3, columna 1
(3) Luego pide por teclado, cada nuevo tipo de vehículo (coche o camión)
que el usuario quiera introducir. Teniendo en cuenta que dos vehículos
no pueden compartir una misma casilla.
(4) Cuando no se deseen introducir más vehículos en el tablero, el tablero
está listo y se podrá comenzar a jugar.
2. Ejecución de movimientos:
(1) El programa permitirá desplazar los vehículos y reconocer si se ha
alcanzado la solución.
(2) En cada iteración se le  muestra el estado actual del tablero, y se
preguntará al usuario que coche desea mover y cuantas casillas.
(3) El programa tendrá en cuenta si el movimiento es válido o no, en caso de
no serlo se volverá a pedir un nuevo movimiento sin modificar el estado
actual del tablero.
(4) Cuando se alcanza la solución al problema, el programa debe finalizar e
indicar al jugador que ha resuelto el tablero y el número de jugadas que
ha utilizado.
(5) OPCIONAL:  Una vez alcanzada la solución al problema, muestra  al
jugador el número de jugadas realizadas especificando los  movimientos
que ejecutó hasta alcanzar la solución.

NOTA: El tablero debe representarse como un array multidimensional de tamaño 6 x 6,  donde  los coches pueden representarse mediante caracteres o números enteros. A  continuación se muestran algunas posibles representaciones de tableros.