in reply to (Golf) Word squares
Update5: Thanks larryk for the suggestion, 77 now
|
Update4: Okay, last update, sorry (87 now)
sub Z{ @_=@l=map{splice@_,rand@_,1}@_;join('',reverse@l)eq(join'',map{map{cho +p}@l}@l)?@_:Z(@_) }
Update3:Okay, so I'm bad at golf :-) (now at 98)
sub Z{ for(;;){@_=@l=map{splice@_,rand@_,1}@_;return@_ if join('',reverse@l)e +q join'',map{map{chop}@l}@l} }
Update2: Using for(;;) instead of while(1) -- count = 101;
sub Z{ for(;;){@l=map{splice@_,rand@_,1}@_;@_=@l;return@_ if join('',reverse@ +l)eq join'',map{map{chop}@l}@l} }
Original:
Hello
Here is my shot at 102 using permutation trial and error, enjoy
my @ar = qw/NEAR LANE EARS AREA/ ; # @ar = qw/LINGO MILLS SMOCK IDIOM LOGIC/; print "$_\n" for Z(@ar); sub Z{ while(1){@l=map{splice@_,rand@_,1}@_;@_=@l;return@_ if join('',reverse +@l)eq join'',map{map{chop}@l}@l} }
Aziz,,,
Update: Added Mills Lingo :-)
In Section
Meditations