On 4/5/12 I sent out this challenge, and Raul Miller had an encrypted
solution the same day!  Here is the translation.

 

    full simulation 0

---------┐
│B goes  │
│first , │
│W wins  │
+--------+
│.o.o.o.o│
│oWo.o.o.│
│.o.o.o.o│
│o.o.o.o.│
│.o.o.o.o│
│o.o.o.o.│
│.o.o.oBo│
│o.o.o.o.│
+--------+
│.o.o.o.o│
│oWo.o.o.│
│.o.o.o.o│
│o.o.o.o.│
│.o.o.o.B│
│o.o.o.o.│
│.o.o.o.o│
│o.o.o.o.│
+--------+
│.o.o.o.o│
│o.o.o.o.│
│.o.W.o.o│
│o.o.o.o.│
│.o.o.o.B│
│o.o.o.o.│
│.o.o.o.o│
│o.o.o.o.│
+--------+
│.o.o.o.o│
│o.o.o.o.│
│.o.W.o.o│
│o.o.oBo.│
│.o.o.o.o│
│o.o.o.o.│
│.o.o.o.o│
│o.o.o.o.│
+--------+
│.o.o.o.o│
│o.o.o.o.│
│.o.o.o.o│
│o.o.oWo.│
│.o.o.o.o│
│o.o.o.o.│
│.o.o.o.o│
│o.o.o.o.│
L---------

 

Here is the code in separate lines with no conventional control structures.

 

SQUARES=:,8 8 {.9 9$'.o'

pieces=: # $ {&(32#'WB')@{.~&2

summary=: ({.,' goes first, ',{:,' wins  '"_)@pieces

boards=: (8 8 ,@<@$ ]`[`(SQUARES"_)})"1&(]\~&2) pieces

full=: (]\~&_2)&.;:@summary ; boards

MOVES=:,8 8{.11 11$<@(8#.(#~ */@:<&8"1))"2]11#.inv 120<.(i.121)+/(,-)9 13 21
23   NB.  MOVES is a long line

seq=: (, MOVES ({~ ?@#)@{::~ _2&{)^:(~:/@{.~&_2)^:_

simulation=: seq@(|.^:(? bind 2) bind 9 54)

 

simulation 0

full simulation 0

 

I have been struggling and finally "translated"  MOVES  to  movesla  in
simple J (almost - only 1 @).

 

 

K=:11#.inv 120<.(i.121)+/(,-)9 13 21 23 

movesla=: 13 :',(x,x){.11 11 $<@((x#.(#~"2(*/"1@:<x"1)))"2)y'

 

I can't untangle  seq.

 

Raul's solution is impressive and I hope to understand it sometime.

In any case, any help with a way around control structures in the simple J
version.

 

Linda

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to