本文详细介绍基于Delphi的“八皇后”问题动态实现
解决冲突的具体函数
function pd(i,j:integer):boolean;
var i1,j1:integer;
begin
pd:=true;
if i<>1
then begin for i1:=1 to i-1 do for j1:=1 to 8 do
if a[i1,j1]=1
then begin if j1=j then pd:=false else if abs(i1-i)=abs(j1-j)then pd:=false end
end
end;棋盘与棋子的图片(需要用画图程序作出)、生成、装入及显示过程如下:
procedure TForm1.PaintBox1Click(Sender: TObject);
var q:tbitmap;
begin
q:=tbitmap.create;
q.loadfromfile('e:八皇后ackimg.bmp');
paintbox1.canvas.Draw(0,0,q);
end;
end.组件设置
paintbox1:绘图板,显示当前的合法布局。
Label1:文字标签,显示当前合法布局的序号。
Button1,button2,button3,button4:开始、单幅、连续、退出按纽。

程序清单:
(1)代码单元unit1:
procedure TForm1.Button1Click(Sender: TObject);
begin
dstep:=true;
bhh:=tbhh.create(false);
button1.enabled:=false;
button2.enabled:=true;
button3.enabled:=true;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if dstep=false then begin bhh.suspend; dstep:=true end
else bhh.resume
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
dstep:=false; bhh.resume;
end;
来源:计算机与信息技术 作者:左才文 责编:豆豆技术应用
正在加载评论...
- Delphi新闻
- Delphi教程
- Delphi 7.0
- Delphi 2007
- Delphi控件
- Delphi网络编程
- Delphi for php
- Delphi界面/视图
- Delphi系统控制
- Delphi数据库
- Delphi源码下载