2013-08-16 67 views
1

我對視覺序言非常陌生,想知道如何整合我在link上找到的代碼。在Visual Prolog中的河內塔

當我在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). 

預先感謝任何幫助。

回答

0

由於您的問題中的鏈接被破壞,我提供了一個新的鏈接。 你會發現原來的渦輪Prolog的車主手冊這裏的PDF:

互聯網檔案館,渦輪Prolog的業主手冊1987(1987)
http://archive.org/details/bitsavers_borlandturOwnersHandbook1987_8438592

其中的與域,謂詞和子句中的相同的代碼。根據以下wikipedia條目的 ,您可以將turbo Prolog代碼 幾乎不變地移動到可視Prolog系統中。

Visual Prolog中,河內例
http://en.wikipedia.org/wiki/Visual_Prolog#Hanoi_Example

使用 '謂詞' 在類的接口你的公開斷言。 並在類的實現 中爲您的私有謂詞使用'類謂詞'。

再見

0

你的代碼的第一部分是「現代」級基於Visual Prolog中,但你的代碼的第二部分是舊式(渦輪序言,PDC Prolog語言,Visual Prolog中< 5.2)。