El MONOCROM es un monitor monocromo con pantalla cuadrada formada
por una retícula de 16x16 puntos, cada uno de los cuales se puede poner
de color blanco o de color negro.
El monitor dibuja a partir de ciertas órdenes que recibe
en forma de secuencia de caracteres; los caracteres enviados actúan no
sobre toda la pantalla, sino solamente sobre un área seleccionada, que
puede cambiarse mediante algunos de estos caracteres.
Inicialmente, el área seleccionada es toda la pantalla,
y puede suponerse que todos sus puntos son de color blanco. El carácter
'x' sirve para pintar el área seleccionada (es decir, poner todos sus
puntos de color negro) e, inmediatamente, volver a considerar como área
seleccionada la pantalla entera.
Finalmente, los caracteres del '1' al '4' sirven para hacer más
pequeña el área seleccionada, de manera que posteriores caracteres
'x' afecten a menos puntos. Concretamente, estos caracteres escogen como nuevo
área seleccionada uno de los cuatro trozos siguientes:
'1': trozo superior izquierdo
'2': trozo superior derecho
'3': trozo inferior derecho
'4': trozo inferior izquierdo
Nótese, pues, que en realidad MONOCROM sólo permite
pintar uno o más cuadrados; cualquier figura compleja debe pintarse a
trozos, seleccionando y pintando los cuadrados adecuados.
Para dibujar una figura como la que aparece abajo, que está
compuesta por diversos cuadrados, se dibujan por separado cada uno de ellos,
en cualquier orden. Para cada uno de ellos, enviaremos:
para el cuadrado pequeño del vértice derecho superior: '2' '2'
'2' '2' 'x'
para el cuadrado grande del vértice derecho inferior: '3' 'x'
para el cuadrado mediano de la izquierda: '1' '1' '3' 'x'
Por lo tanto, las seis posibles secuencias de caracteres que
dibujan esta figura son:
'2' '2' '2' '2' 'x' '3' 'x' '1' '1' '3' 'x'
'2' '2' '2' '2' 'x' '1' '1' '3' 'x' '3' 'x'
'3' 'x' '2' '2' '2' '2' 'x' '1' '1' '3' 'x'
'3' 'x' '1' '1' '3' 'x' '2' '2' '2' '2' 'x'
'1' '1' '3' 'x' '2' '2' '2' '2' 'x' '3' 'x'
'1' '1' '3' 'x' '3' 'x' '2' '2' '2' '2' 'x'
Se pide un programa que sea capaz de, dada una secuencia de caracteres,
dibujar una figura según las reglas anteriores.
Entrada
Residente en el fichero de caracteres "DIBU.DAT": varias
líneas que forman una figura. Cada línea corresponde a un cuadrado,
y consta pues de cero, uno, dos, tres o cuatro dígitos entre el '1' y
el '4' y, como último carácter de la línea, el carácter
'x'. Todos estos caracteres estarán separados por un único caracter
blanco.
Salida
A guardar en el fichero de caracteres "DIBU.OUT": la
figura resultante de aplicar las reglas descritas en el enunciado. Representamos
la figura con 16 líneas de 16 caracteres.
Cada carácter de esta superficie 16x16 será o bien
un carácter 'o' (letra 'o') o bien un carácter 'x', según
el punto correspondiente deba ser de color blanco o de color negro.
Ejemplo de entrada
La primera secuencia de las seis que aparecen al inicio de esta
página se almacenaría en el fichero "DIBU.DAT" como:
2 2 2 2 x
3 x
1 1 3 x
Ejemplo de salida
ooooooooooooooox
oooooooooooooooo
ooxxoooooooooooo
ooxxoooooooooooo
oooooooooooooooo
oooooooooooooooo
oooooooooooooooo
oooooooooooooooo
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx |