最近迷上了数独游戏,玩多了,都是别人出好的题目,就想自己也能生成题目,不过算法实在是搞不定,我在算法方面没什么经验,不知道这里有没有哪位大侠能有解数独的规则很简单,就是3x3共9个九宫格,组成9x9共81个格子。其中每个九宫格只能填1-9不能重复的数字,同时每一行以及每一列也都只能出现1-9不能重复的数字。表达能力有限,不知道说的够不够清楚,希望大家不吝赐教!
解决方案 »
- 运行一个SQL语句时出现一个提示:ADOQUERY1:COMMANDTEXT does not reture result set! 要点确定才下去,怎么让这个提示不影响以后的程序运行?
- 怎样在EXCEL中实现双面打印,实现后马上给分
- 超长SQL语句,高手进来看,在线等待
- 求助:有关于用bde+odbc连接mysql不能连接的问题!!!!!
- 在stringgrid的cells中,如何把 12.3 转成 12.30,即要保持小数两位
- 关于ListBox 控件
- 联接oracle数据库,如何做登录窗体, 怎么判断输入的密码对不对,回者有分(内空)
- HELP ME!关于WEBBROWSER的一个问题。
- EInvalidOperation----->Cannot focus a disabled or invisible window?????????????
- delphi如何实现文字纵向打印?
- 同样是Table通过ODBC连dBase数据库,win98和win2000之间,差距咋这么大泥?
- 关于一个数据类型转换问题!(紧急求助请高手指点!)
第一行 A1A2A3 A4A5A6 A7A8A9 (1..9随便填)
第二行 A4A5A6 A7A8A9 A1A2A3 (由第一行以3个数为基准循环左移一次)
第三行 A7A8A9 A1A2A3 A4A5A6 (由第二行以3个数为基准循环左移一次)第四行 A2A3A1 A5A6A4 A8A9A7 (由第一行作3个数的内部循环左移一次)
第五行 A5A6A4 A8A9A7 A2A3A1 (由第四行以3个数为基准循环左移一次)
第六行 A8A9A7 A2A3A1 A5A6A4 (由第五行以3个数为基准循环左移一次)第七行 A3A1A2 A6A4A5 A9A7A8 (由第四行作3个数的内部循环左移一次)
第八行 A6A4A5 A9A7A8 A3A1A2 (由第七行以3个数为基准循环左移一次)
第九行 A9A7A8 A3A1A2 A6A4A5 (由第八行以3个数为基准循环左移一次)
应该还有很多的生成办法
var
i,j,k,m,n,x,y:Integer;
A:array[1..9,1..9] of Integer;
s:string;
t:array[1..9] of integer;
Label TryAgain;
begin
for i:=1 to 9 do
for j:=1 to 9 do
A[i,j]:=0;
Randomize();TryAgain: for i:=1 to 9 do
for j:=1 to 9 do
begin
for k:=1 to 9 do
t[k]:=0;
for m:=1 to i-1 do
t[A[m,j]]:=1;
for n:=1 to j-1 do
t[A[i,n]]:=1; s:='';
for k:=1 to 9 do
if t[k]=0 then
s:=s+inttostr(k);
if s='' then
goto TryAgain;
x:=Length(s);
y:=Random(x)+1; A[i,j]:=strtoint(Copy(s,y,1)); end; s:='';
for i:=1 to 9 do
begin
for j:=1 to 9 do
s:=s+inttostr(A[i,j]);
s:=s+Chr(13);
end; RichEdit1.Text :=s;end;
我上次的求解?不好意思,已经忘记是哪个了,你能说具体点吗?