You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
685 B
Bash
41 lines
685 B
Bash
#!/bin/bash
|
|
|
|
LINES=$(tput lines)
|
|
COLUMNS=$(tput cols)
|
|
|
|
declare -A snowflakes
|
|
declare -A lastflakes
|
|
|
|
clear
|
|
|
|
function move_flake() {
|
|
i="$1"
|
|
|
|
if [ "${snowflakes[$i]}" = "" ] || [ "${snowflakes[$i]}" = "$LINES" ]; then
|
|
snowflakes[$i]=0
|
|
else
|
|
if [ "${lastflakes[$i]}" != "" ]; then
|
|
printf "\033[%s;%sH \033[0;0H " ${lastflakes[$i]} $i
|
|
fi
|
|
fi
|
|
|
|
printf "\033[%s;%sH❄\033[0;0H" ${snowflakes[$i]} $i
|
|
|
|
lastflakes[$i]=${snowflakes[$i]}
|
|
snowflakes[$i]=$((${snowflakes[$i]}+1))
|
|
}
|
|
|
|
while :
|
|
do
|
|
i=$(($RANDOM % $COLUMNS))
|
|
|
|
move_flake $i
|
|
|
|
for x in "${!lastflakes[@]}"
|
|
do
|
|
move_flake "$x"
|
|
done
|
|
|
|
sleep 0.1
|
|
done
|