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
		
	
	
		
			691 B
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			41 lines
		
	
	
		
			691 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
 |