#!/usr/bin/perl $|=1; use Term::ReadKey; ($w, $h) = GetTerminalSize; ReadMode 3; $x1 = 3; $y1 = 3; $dx = 0.05; $dy = 0.05; print "\e[H"; print "\n" x ($h-2); print " " x ($w/2-5); print "##########\r"; $x=($w/2-5); while (1) { $key = ReadKey -1; if ($key eq "d") {$x++; if ($x>($w-10)) {$x=($w-10)}; print "\e[H"; print "\n" x ($h-2); print "\r"; print "\e[K"; print " " x $x; print "##########\r";} if ($key eq "a") {$x--; if ($x<0) {$x=0}; print "\e[H"; print "\n" x ($h-2); print "\r"; print "\e[K"; print " " x $x; print "##########\r"; } print "\e[H"; for (0..($h-3)) {print " " x ($w); print "\n"} print "\e[H\n\n\n"; print "\n" x $y1; print "\r\e[K"; print " " x $x1; print "O\r"; $x1 = ($x1 + $dx); $y1 = ($y1 + $dy); if ( ($y1)>=($h-5) || $y1<=0) {$dy *= -1} if ( ($x1)>=($w-1) || $x1<=0) {$dx *= -1} } ReadMode 0;