randomboard =: 3 : '? (y,y) $ y' testsolution =: 4 : 0 m =. x n =. #x n -: # ~. ({&m) <"1 (i. n) ,. y A. (i. n) ) findsolution =:3 : 0 board =: y ns =. 1 i.~ (board & testsolution)"0 i. !#y if. (ns = !#y) do. 'No solution found' else. ns A. i. #y end. ) writesolution =: 4 : 0 board =. x sol =.y m1 =. m n1 =. #x count =. 0 for_a. sol do. m1 =. n1 (< count , a) } m1 count =. count + 1 end. m1 ) writewithsolution=: 4 : 0 m1 =: x writesolution y (":"1 x) ,. '|' ,. ":"1 m1 ) m =: randomboard 9 echo m writewithsolution findsolution m load 'queens.ijs' 5 2 8 0 3 3 0 5 2|9 2 8 0 3 3 0 5 2 8 2 3 6 7 7 4 5 1|8 9 3 6 7 7 4 5 1 6 1 5 8 3 5 8 7 6|6 1 5 9 3 5 8 7 6 8 4 8 8 7 5 1 1 1|8 4 8 8 9 5 1 1 1 2 6 7 6 5 4 7 3 1|2 6 7 6 5 4 7 9 1 6 8 1 4 1 4 3 2 7|6 8 1 4 1 9 3 2 7 6 0 5 6 5 5 8 5 0|6 0 5 6 5 5 8 5 9 1 7 5 5 8 1 1 0 1|1 7 5 5 8 1 9 0 1 8 4 6 2 2 4 6 4 1|8 4 9 2 2 4 6 4 1