* 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;

Reply via email to