-exports("copy","getbd","getmoves","pp") copy(N,F,O,T,B,NB) { ? N>=0, N!=F, N!=O, N!=T -> {|| NB[N]=B[N], copy(N-1,F,O,T,B,NB) }, default -> { ? N>=0 -> copy(N-1,F,O,T,B,NB) } } getmoves(Ms) Ms=[{0,1,3},{0,2,5},{1,3,6},{1,4,8},{2,4,7},{2,5,9},{3,6,10},{3,7,12}, {3,4,5},{3,1,0},{4,7,11},{4,8,13},{5,8,12},{5,9,14},{5,4,3},{5,2,0}, {6,7,8},{6,3,1},{7,8,9},{7,4,2},{8,7,6},{8,4,1},{9,8,7},{9,5,2}, {10,11,12},{10,6,3},{11,12,13},{11,7,4},{12,13,14},{12,8,5},{12,7,3}, {12,11,10},{13,12,11},{13,8,4},{14,13,12},{14,9,5}]