#!/bin/bash

clean () {
   echo -e "\e[$(($(tput lines) +1));0H\e[m"
}

trap clean EXIT

writeleer () {
   for (( j=0; $j < $1; j++ )) do
      echo -n " "
   done
}

while [ true ]
do
   u=0
   
   mw=$(tput cols)
   mh=$(tput lines)
   ml=$(((RANDOM%mw +2)/2))
   
   w=$((RANDOM%mw +1))
   h=$((RANDOM%mh +1))
   l=$((RANDOM%ml +1))
   c=$((RANDOM%7 +1))
   
   echo -ne "\e[${h};${w}H"
   
   if [ $h -eq $mh -a $((l + w)) -ge $mw ]
   then
      let newl=w+l-mw
      let l=mw-w+1
      u=1
   fi
   
   v=$((i%7 +1))
   echo -ne "\e[30;4"$c"m"
   
   writeleer $l
   if [ $u -eq 1 ]
   then
      echo -ne "\e[0;0H"
      writeleer $newl
   fi
   
   let i++
done