my $inversions = 1; while ($inversions % 2) { @board = (0, shuffle(1..15)); $inversions = 0; for my $x (1 .. 15) { for my $y ($x + 1 .. 15) { $inversions++ if $board[$x] > $board[$y]; } } } #### my $inversions; do { $inversions = 0; @board = (0, shuffle(1..15)); # @board = (1,0,2..15); # for testing for my $x(1..15) { for my $y($x+1..15) { ++$inversions if $board[$x]>$board[$y] } } } while $inversions % 2;