#!/usr/bin/perl my $theight = shift || 25; my $twidth = shift || 80; my @lm = ( ' o ', '/ \\' ); my $play = 'y'; while( $play =~ /y/i ) { my $x = 20; my $y = 5; my $dx = 0; my $dy = -0.01; # forever! { &draw( $x, $dx, $y, $dy ); $dy += 0.005; $dx *= 0.98; $x += $dx unless $x > $twidth - 5; $y += $dy; $dy = -0.1 if $dy < -0.1; $y = 1 if $y < 1; $pids = `ps -e`; $dx -= 0.05 if $pids =~ /\bh\b/; $dx += 0.05 if $pids =~ /\bl\b/; $dy -= 0.05 if $pids =~ /\bk\b/; redo unless $theight - $y < 4; } print "\nVelocity: ", $dy * 100, " m/s\n"; if ( $dy > 0.1 ) { print "I'm sorry, you have crashed!\n"; } else { print "Congratulations, you are an ace Lunar pilot!\n"; } print "Play Again?"; $play = ; } sub draw { my ($x, $dx, $y, $dy ) = @_; `clear`; print "x: ", int($x*100), " dx: ", int($dx*100), " y: ", int(($theight-$y-4)*100), " m dy: ", int($dy*100), " m/s\n"; if ( $y > 1 ) { print "\n" x $y; print " " x $x; print $lm[0], "\n"; print " " x $x; print $lm[1]; print "\n" x ($theight - $y - 2); } else { print "\n" x ($theight-2); } }