* William Herrera <[EMAIL PROTECTED]> [2006-09-17 21:50]: > perl 5 (9 lines, 353 bytes) > > use FreezeThaw qw(cmpStr); > > my @a1_9 = (1 .. 9); > my @numbers = sort {rand(10) > $a} @a1_9; > > for (my $steps = 0; cmpStr([EMAIL PROTECTED], [EMAIL PROTECTED]); ++$steps) { > print join(" ", @numbers), "\nReverse how many? "; > my $flipcount = <STDIN>; > @numbers[0..$flipcount - 1] = reverse(@numbers[0..($flipcount-1)]); > } > > print "Done! That took you $steps steps.\n";
To be fair, Perl 5 can be a good deal nicer. 10 lines, 316 bytes, and much less punctuation: use List::Util 'shuffle'; my @numbers = shuffle my @goal = ( 1 .. 9 ); my $num_steps; while ( "@numbers" ne "@goal" ) { print "@numbers\nReverse how many? "; my @slice = 0 .. <STDIN> - 1; @numbers[ @slice ] = reverse @numbers[ @slice ]; ++$num_steps; } print "Done! That took you $num_steps steps.\n"; Regards, -- #Aristotle *AUTOLOAD=*_;sub _{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker;