L
i
nux.org.ua
Головна
Форум
Довідка
Правила
Пошук
Увійти
Реєстрація
Linux.org.ua
»
Всячина
»
Гумор
»
Багаття bash
« попередня гілка
наступна гілка »
Відповісти
Друк
Сторінки:
1
Автор
Гілка: Багаття bash (Прочитано 2848 раз)
Михайло Даниленко
Адміністратор ЩОДО
Літератор
дописів: 1262
Карма: +0/-0
[Debian Stretch]
Багаття bash
«
:
2007-10-26 21:51:31 »
Цитата
Не для production, бо надто повільне, JFF
#! /bin/bash
# TODO:
# * Speed-up!
# * Improve oven gen algo - it should take into account neighbors state
# and increase appropriate probability.
X=100
Y=35
C=(
' '
$'\e[1;31m.'
$'\e[1;33m,'
$'\e[0;31m:'
$'\e[0;33m;'
$'\e[0;31m|'
$'\e[1;31mj'
$'\e[1;31mo'
$'\e[1;33m*'
$'\e[1;33m%'
$'\e[1;33m#'
$'\e[1;37m$'
$'\e[1;37m@'
)
buf=( 0{,}{,}{,,,,}{,,,,}{,,,,}{,,,,,,} ) # 100*35 = 2*2*5*5*5*7
MC=$(( ${#C
} - 1 ))
MB=$(( X * (Y-1) ))
M=$(( X*Y ))
while : ; do
l=''
echo -n $'\e[0;0f\e[0m'
for (( i=0, j=X; i < MB ; i++ )) ; do
c=${buf[i+X]}
if (( c )) ; then
(( c-- ))
fi
buf
=$c
if (( --j )) ; then
l="$l${C[c]}"
else
echo -n "$l${C[c]}"
l=''
j=X
fi
done
for (( i=MB; i < M ; i++ )) ; do
c=${buf
}
(( c += ( (RANDOM%5) - 2 ) ))
if (( c < 0 )) ; then
c=0
elif (( c > MC )) ; then
c=$MC
fi
buf
=$c
l="$l${C[c]}"
done
echo -n "$l"
done
# The End
Записаний
Cthulhu
Кореспондент
дописів: 183
Карма: +0/-0
Re: Багаття bash
«
Відповідей #1 :
2007-10-26 21:54:25 »
Цитата
Flame=)))
Записаний
Михайло Даниленко
Гість
Re: Багаття bash
«
Відповідей #2 :
2008-07-08 21:53:55 »
Цитата
Іще один простенький візуальний ефект - створює грозову атмосферу.
$ while : ; do tput flash; sleep 0.$(($RANDOM%10)) ; done &
P.S. Маю нагоду подякувати пану Володимиру за
оце
, тоді, якщо чесно, не оцінив.
Записаний
Відповісти
Друк
Сторінки:
1
« попередня гілка
наступна гілка »
Linux.org.ua
»
Всячина
»
Гумор
»
Багаття bash