sub randomizeArray(@) { my @array = @_; for my $i ( 1 .. $#array ) { my $j = int rand( $i + 1 ); ( $array[$i], $array[$j] ) = ( $array[$j], $array[$i] ); } return @array; } ## end sub randomizeArray(@) sub addWord { my ( $grid, $word ) = @_; for my $dir ( randomizeArray( 0 .. 7 ) ) { for my $y ( randomizeArray( 0 .. $height - 1 ) ) { for my $x ( randomizeArray( 0 .. $width - 1 ) ) { if ( wordFits( $grid, $word, $x, $y, $dir ) ) { insertWord( $grid, $word, $x, $y, $dir ); return 1; } } } ## end for my $y ( randomizeArray... } ## end for my $dir ( randomizeArray... return 0; } ## end sub addWord