You are not logged in.
think so. ![]()
where did you get Java?
i'm using Pascal.very basic.
i changed my code a bit and got a program that solves only the first row.it won't go to the next one!
ya think?
hi bobbym
i found an error on my side in the main code and i fixed it and i edited it but it still won't do it! ![]()
i have bunch of them and i tried this one:
0 5 6 0 8 0 0 1 0
8 3 0 2 0 7 0 0 0
0 1 2 0 0 0 0 0 0
0 0 0 6 0 0 7 0 9
0 0 0 1 0 4 0 0 0
2 0 3 0 0 8 0 0 0
0 0 0 0 0 0 3 9 0
0 0 0 4 0 9 0 2 6
0 7 0 0 5 0 1 4 0
it won't work!
nope! :embarrassed!
from me! ![]()
what does it get?
have you checked it compleely.it uses recursion.
but why won't it work?
just for practice:
thanks!!! ![]()
hi
i'm sure you do.do you do private lessons or are you absolutely out of teaching?
just a question.can i consider you to be my friend?
hi bob
i didn't know that you are retired.from your posts i got that you still teach.
hi bobbym
it's:
0 4 7 0 0 0 3 0 0
8 0 6 0 7 4 0 0 0
0 0 0 2 0 3 8 4 0
0 7 0 0 0 0 4 0 3
9 0 0 4 0 8 0 0 2
4 0 3 0 0 0 0 9 0
0 2 8 6 0 1 0 0 0
0 0 0 8 2 0 7 0 9
0 0 9 0 0 0 2 1 8
the answer should be:
2 4 7 1 8 9 3 5 6
8 3 6 5 7 4 9 2 1
5 9 1 2 6 3 8 4 7
1 7 2 9 5 6 4 8 3
9 6 5 4 3 8 1 7 2
4 8 3 7 1 2 6 9 5
7 2 8 6 9 1 5 3 4
3 1 4 8 2 5 7 6 9
6 5 9 3 4 7 2 1 8
hi guys
i am trying to make a program to solve a Sudoku.i hope you know what that is.
now i have finished the code but there seems to be a logical error because i entered a valid one and it outputted the message 'The Sudoku cannot be solved!!!'
here's the code:
program Sudoku_solver;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
{$IFDEF WINDOWS}{$R Sudoku.rc}{$ENDIF}
const
max=9;
type
niz=array[1..max] of integer;
matrica=array[1..max] of niz;
var
a:matrica;
i,j:integer;
ok:boolean;
function row(a:matrica;i1,j1:integer):boolean;
var
j:integer;
b:boolean;
begin
b:=true;
for j:=1 to 9 do
if j<>j1 then
if a[i1][j]=a[i1][j1] then
b:=false;
red:=b;
end;
function column(a:matrica;i1,j1:integer):boolean;
var
i:integer;
b:boolean;
begin
b:=true;
for i:=1 to 9 do
if i<>i1 then
if a[i][j1]=a[i1][j1] then
b:=false;
vrsta:=b;
end;
function square(a:matrica;i1,j1:integer):boolean;
var
i,j,k,l:integer;
b:boolean;
begin
b:=true;
case i1 of
1,2,3: begin
k:=0;
i:=3
end;
4,5,6: begin
k:=3;
i:=6;
end;
7,8,9: begin
k:=6;
i:=9;
end;
end;
case j1 of
1,2,3: begin
l:=0;
j:=3
end;
4,5,6: begin
l:=3;
j:=6;
end;
7,8,9: begin
l:=6;
j:=9;
end;
end;
while (k<=i) do
begin
k:=k+1;
while (l<=j) do
begin
l:=l+1;
if (k<>i1) and (l<>j1) then
if a[k][l]=a[i1][j1] then
b:=false;
end;
end;
kvadrat:=b;
end;
function pos(a:matrica;i,j:integer):boolean;
begin
poz:=row(a,i,j) and column(a,i,j) and square(a,i,j);
end;
procedure sudoku(var a:matrica;n,i1,j1:integer;ok:boolean);
var
i,j,k:integer;
b:boolean;
begin
i:=i1;
j:=j1;
a[i][j]:=n;
ok:=false;
b:=true;
if poz(a,i,j) then
begin
ok:=true;
i:=0;
j:=0;
while (b=true) and (i<=max) do
begin
i:=i+1;
while (b=true) and (j<=max) do
begin
j:=j+1;
if a[i][j]=0 then
b:=false;
end;
end;
if b=false then
begin
k:=0;
ok:=false;
while (k<=9) and not ok do
begin
k:=k+1;
sudoku(a,k,i,j,ok);
end;
end;
end;
end;
begin
writeln('Enter the Sudoku: ');
for i:=1 to 9 do
begin
for j:=1 to 9 do
read(a[i][j]);
readln;
end;
k:=0;
ok:=false;
while (k<=9) and not ok do
begin
k:=k+1;
sudoku(a,k,i,j,ok);
end;
if ok then
begin
writeln('The solution is: ')
for i:=1 to 9 do
begin
for j:=1 to 9 do
write(a[i][j]);
writeln;
end;
end
else writeln('Sudoku cannot be solved!!!');
readln;
end.note that functions row,column and square check if there are same numbers as the number we are looking at in the same row,column and square.
my second question is: is there another (better) way to make the Sudoku solver,because this one is fairly long and complex !?
hi Sarah
welcome!!!
hi Deon588
try this:
\\ \log_2\frac{x}{4} =\left(\frac{\log_2\frac{x}{8}}{\frac{1}{2}}\right)\\ \mbox{This is the first equation I do which has logarithms and fractions, this is how I remember the change of base formula}\\ \log_2 \frac{x}{4}=\left(\frac{\log_2 \frac{x}{8}}{\log_2 4}\right)\\\mbox{Does that become}\frac{1}{2}\mbox{because it is the demumerator?}you can use the equation editor here:Equation Editor
hi ganesh
hi ganesh
hi zetafunc.
i think that's right.
have you thought of becoming a member?
hi Deon588
what is the question?
hi ganesh
the thread name is spelled wrong. ![]()
hi guys
thanks,i found the problem 10 minutes after i posted.and it was what JEF said,i was missing a colon in front of the equal sign. ![]()
hi
how'd you make the av?