Editor de Imágenes Sencillo
El sistema operativo de la nave Apolo necesita un editor de imágenes sencillo, para manipular las imágenes tomadas en el viaje a La Luna. Las imágenes son monocromáticas, cada una de ellas puede representarse como una matriz de enteros positivos entre 0 y 255. Cada imagen tendrá entre 4 y 128 columnas e igual número de filas.
Se requiere, que usted implemente este editor de imágenes, que permitirá ejecutar las 6 operaciones descritas a continuación:
- PAINT [X1],[Y1] [X2],[Y2] [COLOR] - Dado un rectángulo de la imagen con vértices superior izquierdo (x1,y1) e inferior derecho (x2,y2), así como un color: colorear el rectángulo indicado con el color dado.
- LINE [COORDENADA] [COLOR] [HORIZONTAL | VERTICAL] - Dada una coordenada, un color, y una de las dos palabras "horizontal" o "vertical": dibujar en la imagen una línea horizontal o vertical, en la coordenada dada y del color indicado.
- HMIRROR - Reflejar la imagen horizontalmente, o sea, realizar una reflexión sobre el eje y.
- ROTATE [90 | 180 | 270] - Rotar la imagen 90, 180 ó 270 grados, en el mismo sentido que las manecillas del reloj.
- PRINT - Imprimir en pantalla la imagen.
- EXIT - Cerrar el editor.
ACLARACIONES:
- El par de coordenadas (0,0) indica la esquina superior izquierda de la imagen.
- Las columnas se enumeran de iquierda a derecha, la primera es la número cero.
- Las filas se enumeran de arriba hacia abajo, la primera es la número cero.
DESCRIPCIÓN DE LA ENTRADA:
La primera línea de la entrada, contiene un número entero N (4 <= N <= 128), que representa la cantidad tanto de filas como de columnas de la imagen. A continuación seguirán N líneas, cada una con N números enteros separados por un espacio, la imagen. Luego vendrán varias líneas, cada una de ellas describiendo una operación a realizar. Se asegura que la última operación indicada es "EXIT". Las coordenadas indicadas en las operaciones PAINT y LINE serán válidas, o sea, serán coordenadas pertenecientes al rango de la imagen. El valor indicado en <COLOR>, para las operaciones PAINT y LINE, será un número entre 0 y 255. En el caso de la operación PAINT, se asegura que x1 <= x2 y que y1 <= y2.
DESCRIPCIÓN DE LA SALIDA:
Por cada operación "PRINT" usted deberá imprimir en pantalla la imagen, seguida de una línea en blanco.
ENTRADA DE EJEMPLO:
4
1 2 2 1
1 3 3 1
1 3 3 1
1 2 2 1
PRINT
PAINT 1,1 2,2 5
PRINT
LINE 3 111 VERTICAL
PRINT
HMIRROR
PRINT
ROTATE 90
PRINT
ROTATE 270
PRINT
EXIT
SALIDA DE EJEMPLO:
1 2 2 1
1 3 3 1
1 3 3 1
1 2 2 1
1 2 2 1
1 5 5 1
1 5 5 1
1 2 2 1
1 2 2 111
1 5 5 111
1 5 5 111
1 2 2 111
111 2 2 1
111 5 5 1
111 5 5 1
111 2 2 1
111 111 111 111
2 5 5 2
2 5 5 2
1 1 1 1
111 2 2 1
111 5 5 1
111 5 5 1
111 2 2 1
Comments
No te dicen la cantidad de querys