如何在PASCAL中确立各个字符的位置

来源:百度知道 编辑:UC知道 时间:2024/05/25 17:21:30
最近决定使用PASCAL编写一个解数独的程序。不过本人技术十分有限,于是在第一步就卡住了。我想先确立输入进去的数字的坐标或位置,以便判定其是否合法。或者各位也可以向我提供一下用PASCAL解数独的思路。谢谢!
如果回答的好的我会加分的~
sheshiyifan你好。你提供的程序我无法运行,这是怎么回事?而且,如果有空的话,能为我解释一下程序吗?希望能解释的详细些,谢谢!

解数独的程序就是一个深搜,看起来搜索量很大,但事实上它本身的剪枝量也很大
读入的话……我不知道你想要的是不是这样:
for i:=1 to 9 do
begin
for j:=1 to 9 do
read(x[i,j]);
readln;
end;
x[i,j]就是第i行,第j个数

学一些图的知识,用矩阵表示,不会很难.

for i:=1 to 9 do
begin
for j:=1 to 9 do
read(x[i,j]);
readln;
end;

Program ii;
Var
Map:array[1..9,1..9]of integer;
Across,Down,Area:array[1..9,1..9]of boolean;
AreaM:array[1..9,1..9]of integer;
MapRest,i,j:integer;
Procedure Print;
Var
i,j:integer;
Begin
for i:=1 to 9 do
Begin
for j:=1 to 9 do write(Map[i,j]);
writeln;
End;
exit;
End;
Procedure Produce;
Var
i,j,x,y,t,n:integer;
Canbe:array[1..9]of boolean;
CNB:array[1..9,1..9]of boolean;{can not be}
number:array[1..9]of integer;
Begin
fillchar(CNB,sizeof(CNB),true);
repeat
x:=random(8)+1;
y:=random(8)+1;