Sie sind auf Seite 1von 4

Profesor

Hugo Araya Carrasco


TOM Y JERRY

A continuacin Ud. encontrar un problema que debe ser resuelto por equipos de no
ms de dos estudiantes, la solucin final debe ser implementada en un programa escrito
en lenguaje Python. El plazo final de entrega vence impostergablemente el da Viernes
7 de julio a las 21:00 P.M., no se recibirn trabajos despus de la fecha y hora indicada.
La no presentacin del trabajo ser evaluada con 1.0.

El programa (slo cdigo fuente y ningn otro archivo) debe ser subido a la plataforma
virtual, con los autores debidamente identificado en la documentacin interna del
programa (comentarios).

El problema

Como es usual, el gato Tom persigue a Jerry por las habitaciones de una casa sin ningn
xito, pues el maldito roedor conoce todos los recovecos de la mansin. Harto de esta
situacin, Tom se inscribe en un curso de programacin en Python en la UCM, con la
intencin de construir un programa capaz de encontrar el camino ms corto hasta su
ansiada presa sorteando todos los obstculos (paredes, armarios, etc.) que pueda
encontrar.

Representaremos la casa por una superficie rectangular de M filas (numeradas de 1 a


M) y N columnas (numeradas de 1 a N), dividida en casillas unitarias:

Computacin II IND-2017 Pgina 1



Profesor Hugo Araya Carrasco

Supondremos que tanto Tom como Jerry ocupan una casilla dentro de esta superficie.
Los obstculos de la habitacin sern rectngulos de coordenadas vlidas dentro de la
superficie, y se representarn con su vrtice superior izquierdo y el inferior derecho.
Existe la posibilidad que el rectngulo sea en realidad una recta (horizontal o vertical;
por ejemplo, las coordenadas (3, 4) y (3, 6) definen una recta horizontal) o incluso un
punto (cuando las dos coordenadas son iguales).

Se pide construir un programa que procese una entrada que se encuentra en un archivo
llamado entrada.txt, que contenga la configuracin inicial de la casa, y que la dibuje si
es correcta en un archivo llamado salida.txt.

Los casos de error que consideramos sern:

(E0) M o N (o ambas) son igual a 0.

(E1) Tom o Jerry no se encuentran en coordenadas vlidas de la superficie de la casa.

(E2) Tom y Jerry estn en la misma casilla.

(E3) Algn obstculo no est situado en coordenadas vlidas de la superficie.

(E4) Vrtices que representan obstculos no cumplen una relacin vlida entre s.

(E5) Dos o ms obstculos se solapan.

(E6) Tom o Jerry estn en una casilla ocupada por un obstculo.

El archivo de entrada tiene la forma siguiente:

En la primera lnea se encuentra el valor M un espacio en blanco y el valor de N.

Computacin II IND-2017 Pgina 2



Profesor Hugo Araya Carrasco

En la siguiente lnea vienen cuatro valores naturales separados por un espacio en
blanco, los dos primeros valores representan la posicin inicial de Tom (fila - columna)
y los dos siguientes la de Jerry.

La siguiente lnea viene un nmero que corresponde a la cantidad de obstculo que hay
en la casa.

Las siguientes lneas (una por cada obstculo) vienen las coordenadas de los obstculos
y corresponden a cuatro valores naturales, separados por un espacio en blanco, los dos
primeros valores representan el vrtice superior izquierdo del obstculo (fila - columna)
y los dos restantes el vrtice inferior derecho.

LA SALIDA.

En caso de encontrarse algn error, se deber escribir en el archivo de salida, una nica
lnea con el mensaje "ERROR Ex", siendo la 'x' un nmero entre 0 y 6 que identifica el
tipo de error que se encuentre en la entrada. Si hubiese ms de un error a la vez, se
devolver aquel con cdigo menor; por ejemplo, si el primer error lo provoca un
obstculo que se solapa con alguno de los anteriores y al mismo tiempo ocupa la casilla
de Tom o de Jerry, el cdigo a devolver sera E5.

En caso de no encontrarse ningn error, la salida corresponder a un archivo que


contendr M lneas de N caracteres cada una de ellas, siendo cada carcter el contenido
de una casilla, que ser 'o' para las casillas vacas, 'x' para las casillas que forman parte
de un obstculo, 'T' para la casilla ocupada por Tom y 'J' para la casilla ocupada por Jerry.

A continuacin, se muestran algunos ejemplos de entrada errnea y el mensaje que


debe aparecer en pantalla:

Computacin II IND-2017 Pgina 3



Profesor Hugo Araya Carrasco

33 33 33
2233 2232 3223

1 1 2
1221 1223 1122
1223

ERROR E4 ERROR E6 ERROR E5

En cambio, las entradas siguientes generan resultados correctos:

55 75
1153 1271

2 5
2133 2 1 2 2
1444 2 4 2 4
4 2 4 5
6 1 6 2
6 4 6 4

Tooxo oTooo
xxxxo xxoxo
xxxxo ooooo
oooxo oxxxx
ooJoo ooooo
xxoxo
Joooo

Computacin II IND-2017 Pgina 4

Das könnte Ihnen auch gefallen