/** This is a tester for Frink's constraint solver for the n-queens problem. */ n = 10 if length[ARGS] > 0 // Parse command-line argument n = parseInt[ARGS@0] solver = newJava["frink.constraint.ConstraintSolver"] q = new array for i = 0 to n-1 q@i = solver.makeIntRangeVariable[0,n-1] for i = 0 to n-2 { for j = i+1 to n-1 { // Queens not on solver.notEqual[q@i, q@j, 0] // ... the same line solver.notEqual[q@i, q@j, i-j] // ... the same left diagonal solver.notEqual[q@i, q@j, j-i] // ... the same right diagonal } } listener = newJava["frink.constraint.PrintingSolutionListener"] //listener.setFirstOnly[true] // Comment this in to find only one solution. solver.solve[listener]