From cb0b8bdbb7ba1391ba0dc5185a4268987c845d55 Mon Sep 17 00:00:00 2001 From: Buddy Sandidge Date: Sun, 4 Nov 2012 12:05:41 -0800 Subject: [PATCH] Make it snow --- bin/snow | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 bin/snow diff --git a/bin/snow b/bin/snow new file mode 100755 index 0000000..1f2d676 --- /dev/null +++ b/bin/snow @@ -0,0 +1,40 @@ +#!/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