Live data from Hacker News

Show HN: Solving Sudoku using PHP.

gist.github.com

1–10 of 17 posts

Re: Show HN: Solving Sudoku using PHP.

#3
Maybe it's time to look at prolog. :-) P.s: Sorry for the broken new-lines.

:- use module(library(clpfd)). sudoku(Rs) :- flatten(Rs,Vs), Vs ins 1 .. 9, rows(Rs), columns(Rs), blocks(Rs), label(Vs), maplist(writeln,Rs).

rows(Rs) :- maplist(all distinct,Rs).

columns(Rs) :- columns(9,Rs). columns(0,Rs). columns(N,Rs) :- N > 0, N1 is N-1, maplist(nth0(N1),Rs,X), all distinct(X), columns(N1,Rs).

blocks([A,B,C,D,E,F,G,H,I]) :- blocks(A,B,C), blocks(D,E,F), blocks(G,H,I). blocks([],[],[]). blocks([A,B,C|Bs1],[D,E,F|Bs2],[G,H,I|Bs3]) :- all distinct([A,B,C,D,E,F,G,H,I]), blocks(Bs1,Bs2,Bs3).

Re: Show HN: Solving Sudoku using PHP.

#5
post #3

Maybe it's time to look at prolog. :-) P.s: Sorry for the broken new-lines. :- use module(library(clpfd)). sudoku(Rs) :- flatten(Rs,Vs), Vs ins 1 .. 9, rows(Rs), columns(Rs), blocks(Rs), label(Vs), maplist(writeln,Rs). rows(Rs) :- maplist(all distinct,Rs). columns(Rs) :- columns(9,Rs). columns(0,Rs). columns(N,Rs) :- N > 0, N1 is N-1, maplist(nth0(N1),Rs,X), all distinct(X), columns(N1,Rs). blocks([A,B,C,D,E,F,G,H,I]…

Or APL, like here: http://aplwiki.com/SudokuSolver#The_Final_Function

Re: Show HN: Solving Sudoku using PHP.

#6
post #3

Maybe it's time to look at prolog. :-) P.s: Sorry for the broken new-lines. :- use module(library(clpfd)). sudoku(Rs) :- flatten(Rs,Vs), Vs ins 1 .. 9, rows(Rs), columns(Rs), blocks(Rs), label(Vs), maplist(writeln,Rs). rows(Rs) :- maplist(all distinct,Rs). columns(Rs) :- columns(9,Rs). columns(0,Rs). columns(N,Rs) :- N > 0, N1 is N-1, maplist(nth0(N1),Rs,X), all distinct(X), columns(N1,Rs). blocks([A,B,C,D,E,F,G,H,I]…

To post code with newlines and whitespace preserved, prefix each line with four spaces.

http://news.ycombinator.com/formatdoc

Re: Show HN: Solving Sudoku using PHP.

#8
Though languages like Prolog and APL make brute-forcing suduko trivial, I'm pleased with how little code it took in c#

I put the results on github a while back: http://github.com/AnthonySteele/SudokuSolver/blob/master/Sud...

IMHO the fact that it's fast and not very complex to brute-force Sudoku makes it a lot less interesting as a puzzle for people to solve.

Post reply on HN