martes, 21 de mayo de 2013

Cuadros en Shell Script

Buenas de nuevo.

En la jornada de hoy se nos ha planteado un nuevo ejercicio. Realmente este ejercicio ya lo habíamos realizado mientras hacíamos prácticas de ficheros Batch y si la idea la tenías clara en aquella ocasión, en esta no había muchos más problemas. Realmente se basa en tener el concepto claro y saber utilizar correctamente los comandos que vamos conociendo.

El ejercicio en cuestión era realizar un cuadro con unas medidas previamente introducidas desde la línea de comandos. Por ejemplo:
 $ ./fichero.sh 5
Nos tendría que mostrar algo similar a:
*****
*    *
*    *
*    *
*****

Una vez realizado este primer ejercicio lo hemos "mejorado" añadiéndole la funcionalidad de que analice si existen parámetros. Si el usuario no los introduce, el script lo solicita y "pinta" el cuadro. Si el usuario lo introduce desde la línea de comandos lo realiza igualmente.

La tercera mejora del script ha consistido en sustituir los asteriscos con los que dibujaba los bordes del cuadro por código ASCII extendido con lo que se consigue un resultado visual mejorado. Lógicamente ya hay que trabajar con más opciones pues en lugar de usar  un solo "tipo de ladrillo" para construir la pared, ahora ya tenemos 6 tipos diferentes.

En la cuarta mejora, le hemos añadido la funcionalidad del color. Ahora podemos elegir entre cuatro colores diferentes para dibujar nuestro cuadro.

La quinta y última mejora, ha sido añadirle una textura interior y otra exterior para darle una sensación de profundidad. En esta ocasión también ha sido necesario aumentar el "número de ladrillos" con los que trabajar, al igual que incrementar los contadores y jugar con nuevos desplazamientos.

Hoy me lo he pasado realmente bien, pues era capaz de "ver" rápidamente el código necesario en mi cabeza y los errores que recibía en pantalla cuando estaba realizando los ficheros, eran corregidos sin problemas.

Os dejo con un vídeo para que veáis funcionando los cinco ficheros en cuestión.

Espero que os guste. 

Un saludo para todos.

No hay comentarios:

Publicar un comentario