河内塔在视觉Prolog

时间:2013-08-16 09:27:37

标签: prolog towers-of-hanoi visual-prolog

我对视觉序言很新,并想知道如何整合我在link上找到的代码。

当我在Visual Prolog中创建一个控制台项目时,main.pro中的代码是:

/*****************************************************************************

                        Copyright (c) 2013 My Company

******************************************************************************/

implement main
    open core

clauses
    run():-
        console::init(),
        succeed(). % place your own code here
end implement main

goal
    mainExe::run(main::run).

所以,我的问题是在这个link上插入河内塔的代码?

为方便起见,这是代码:

/* Program ch16e05.pro */

DOMAINS
    loc =right;middle;left

PREDICATES
    hanoi(integer)
    move(integer,loc,loc,loc)
    inform(loc,loc)

CLAUSES
    hanoi(N):-
        move(N,left,middle,right).

    move(1,A,_,C):-
        inform(A,C),!.

    move(N,A,B,C):-
        N1=N-1, move(N1,A,C,B),
        inform(A,C),move(N1,B,A,C).

    inform(Loc1, Loc2):-nl,
        write("Move a disk from ", Loc1, " to ", Loc2).

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

由于您问题中的链接已损坏,我提供了一个新链接。 您可以在此处找到原始turbo Prolog用户手册的PDF文件:

互联网档案,Turbo Prolog业主手册1987(1987)
   http://archive.org/details/bitsavers_borlandturOwnersHandbook1987_8438592

其中有与DOMAINS,PREDICATES和CLAUSES相同的代码。根据 在下面的维基百科条目中,您可以移动turbo Prolog代码 几乎没有变成视觉Prolog系统。

视觉序言,河内示例
   http://en.wikipedia.org/wiki/Visual_Prolog#Hanoi_Example

在类的接口中对公共谓词使用“谓词”。 并在实现中为您的私有谓词使用“类谓词” 该课程。

再见

答案 1 :(得分:0)

代码的第一部分是"现代"基于类的Visual Prolog,但代码的第二部分是旧式的(Turbo Prolog,PDC Prolog,Visual Prolog< 5.2)。