The semi-automatic doodle machine

http://pallit.lhi.is/microcodes/index.php?code_id=50

#!/usr/bin/perl
print "Use a pencil and a 210mm x 210mm sheet of paper. Start with your hand at the upper-left corner.\n";
@position = ('up', 'down');
@direction = (['up', '-'], ['to the left', '-'], ['down', '+'], ['to the right', '+']);
@amount = (0, 0);
while(1){
$d = int(rand(scalar @direction));
$new_amount = int(rand(100));
unless(eval("$amount[$d%2] $direction[$d][1] $new_amount") < 0 || eval("$amount[$d%2] $direction[$d][1] $new_amount") > 210){
print "With pencil ".$position[int(rand(scalar @position))].", move ".$new_amount."mm ".$direction[$d][0].".[Enter]\n";
$amount[$d%2] = eval("$amount[$d%2] $direction[$d][1] $new_amount");
$input = <>;
}
}