lander.pl rows columns
####
#!/usr/bin/perl
print "fire right retros...\n";
select undef, undef, undef, 0.1;
####
#!/usr/bin/perl
print "fire main thrusters...\n";
select undef, undef, undef, 0.1;
####
#!/usr/bin/perl
print "fire left retros...\n";
select undef, undef, undef, 0.1;
####
#!/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);
}
}