He estado rebuscando y he encontrado un programilla muy interesante que me dediqué a hacer el año pasado cuando debería haber estado haciendo cosas más serias, tipo prácticas para presentar y trabajos para nota, pero el aburrimiento y la chorrada son poderosas influencias.
Aquí está el código, por si alguien quiere echarle un vistazo:
Después de esta monumental ida de pinza, se puede escribir en la línea de comandos algo tal que así (suponiendo que hemos guardado los datos en butileitor.sh):##################################################
# #
# BIENVENIDOS AL EXQUISITO BUTILEITOR #
# VERSIÓN 1.1 #
# by manfo #
# Incorporando salida a fichero #
# #
##################################################
#!/bin/bash
i=1
#Chequeo de argumentos
if ([ ! $1 ] || [ ! $2 ])
then
echo "Uso: ./butileitor.sh <numero butilas> <tamaño butilas>
<fichero destino(en blanco para stdout)>"
exit
fi
#Bucle para el número de butilas
while (( $i <= $1 ))
do
j=1
#Voy metiendo el texto en un archivo temporal
#para poder luego trabajar con él
echo " ___ " >> butil.tmp
echo " /_|_\ " >> butil.tmp
# Bucle para la longitud butilar
while (( $j <= $2 ))
do
echo " | | " >> butil.tmp
(( j=$j+1 ))
done
echo " / \ " >> butil.tmp
echo " \__|__/ " >> butil.tmp
(( i=$i+1 ))
done
#Comprobamos si se pide almacenar en fichero
if ( test ! $3 )
then
# Si no, lo imprimimos en pantalla y borramos el temporal
cat butil.tmp
rm butil.tmp
else
mv butil.tmp $3
fi
#Espero que os haya gustado xD
(el $ indica el prompt del sistema)$ ./butileitor.sh 2 3
y nos saldrá un grandioso resultado:
Es imposible que penséis que no soy friki después de esto.___
/_|_\
| |
| |
| |
/ \
\__|__/
___
/_|_\
| |
| |
| |
/ \
\__|__/
Actualización: tras aún más tiempo de aburrimiento, he introducido una nueva versión del butileitor, con posibilidad de dibujar butilas en paralelo. Podéis verlo aquí.
3 comentarios:
Podrías probar a hacerlo en Pascal, Eiffel y C++ así para redondear la jugada xD
En C++ no porque no sé, pero en C posiblemente, si me aburro otro día lo hago, no lo dudes.
butila's team always together! :D
Publicar un comentario