关于汉诺塔(150分)

  • 主题发起人 主题发起人 teufel
  • 开始时间 开始时间
T

teufel

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位朋友可以提供完整的delphi编译的完整可运行的汉诺塔源代码,我指的并不是简单的递归算法,谢谢![:D]
 
汉诺塔是可以用非递归来做的,楼主指的不是简单的递归,指的是什么呢?
 
不好意思,看来我说得不清楚,我并不是精通delphi编程的人,只是朋友需要这个程序交作业。看到论坛上大家积极交流意见,互相借鉴帮助,真的好感人。汉诺塔游戏的编译当然用递归的算法会更加快捷明了的,递归的原理和算法我也懂,但是我需要一个完整的可运行的汉诺塔游戏的源代码,不知道哪位做过汉诺塔编译的朋友慷慨解囊,为我的朋友提供个参考,谢谢大家!
 
这是个递归的.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Hahaha(n: Integer;
From, Toto, Mid: Char);
end;

var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
n: Integer;
begin
Memo1.Clear;
n:=StrToInt(Edit1.Text);
Hahaha(n, 'A', 'C', 'B')
end;

procedure TForm1.Hahaha(n: Integer;
From, Toto, Mid: Char);
begin
if n=1 then
Memo1.Lines.Append(IntToStr(n)+' From '+From+' to '+Toto)
else
begin
Hahaha(n-1, From, Mid, Toto);
Memo1.Lines.Append(IntToStr(n)+' From '+From+' to '+Toto);
Hahaha(n-1, Mid, Toto, From)
end
end;

end.
 
后退
顶部