[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(in)utilitário
From: |
Valtoir |
Subject: |
(in)utilitário |
Date: |
Thu, 09 Jun 2005 09:56:18 -0300 |
User-agent: |
Mozilla Thunderbird 1.0.2 (X11/20050317) |
Olá, pessoal.
Fiz esse script como exercício de lógica e para testar alguns conceitos com
relação à aleatoriedade e simulação de movimento em modo caractere. Ele cria
uma tesoura (finjam que aquilo parece uma tesoura :-) ) que fica passeando pela
tela, em sentido aleatório (esquerda ou direita), numa linha aleatória e com
cor idem.
Como achei o resultado interessante, decidi divulgar. Vai que alguém melhora o
código e eu aprendo sobre otimização, ou encontram alguma utilidade :)))
Até pensei em fazer uma espécie de screensaver em modo texto, como aquele
estilo Matrix que foi postado na lista, mas ao rodar várias instâncias em
background ao mesmo tempo o rabo torce a porca...
--------------------------------------------------------------------------------------
#!/bin/bash
colors=(31 32 33 34 35 36 37)
color=${colors[$(($RANDOM%${#colors[*]}))]}
columns=$((`tput cols`-3))
row=$(($RANDOM%$((`tput lines`-1))))
direction=$(($RANDOM%2))
setterm -cursor off
if [ "$direction" == "0" ] ; then
closed=" 8="
open=" &<"
direction="0 $columns"
else
closed="=8 "
open=">& "
direction="$columns -1 0"
fi
for column in `seq $direction`; do
tput cup $row $column
sleep .3
echo -e "\e[$color;1m$closed\e[m"
tput cup $row $column
sleep .3
echo -e "\e[$color;1m$open\e[m"
done
tput cup $row $column
echo " "
setterm -cursor on
--------------------------------------------------------------------------------------
[]'s
Valtoir
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- (in)utilitário,
Valtoir <=