Your skill will accomplishwhat the force of many cannot PerlMonks

### Re: Spiraling integers

by salva (Abbot)
 on Aug 28, 2005 at 14:24 UTC ( #487258=note: print w/replies, xml ) Need Help??

in prolog...
```matrix(S, M) :-
length(M, S),
matrix1(M, S).

matrix1([], _).
matrix1([H|T], S) :-
length(H, S),
matrix1(T, S).

next(A, B, A, B).
next(1, 0, 0, 1).
next(0, 1, -1, 0).
next(-1, 0, 0, -1).
next(0, -1, 1, 0).

solve(N, M) :-
N2 is N*N,
numlist(1, N2, L),
matrix(N, M),
solve(L, -1, 0, 1, 0, M).

solve([], _, _, _, _, _).

solve([Ix|T], X, Y, Dx, Dy, M) :-
next(Dx, Dy, Dx1, Dy1),
Y1 is Y+Dy1,
X1 is X+Dx1,
nth0(Y1, M, Row),
nth0(X1, Row, Ix),
!,
solve(T, X1, Y1, Dx1, Dy1, M).

:- solve(5, M), writeln(M).

Create A New User
Node Status?
node history
Node Type: note [id://487258]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2019-10-14 08:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
In 2019 the site I miss most is:

Results (36 votes). Check out past polls.

Notices?