📄 311.txt
字号:
domains
state=symbol
database-mydatabase
open(state,integer)
closed(integer,state,integer)
tes(state)
open1(state,integer)
min(state,integer)
mark(state)
fail_
predicates
solve
search(state,state)
result
searching
step4(integer,state)
step56(integer,state)
equal(state,state)
repeat
resulting(integer)
rule(state,state)
goal
solve.
clauses
solves:-search(<初始状态>,<目标状态>),result.
/*例如
solve:-
search(st(0,1,2,3,4,5,6,7,8),st(1,2,8,3,4,5,6,7,1)),result.
*/
search(begin,end):-
retractall(_,mydatebase),
assert(closed(0,begin,0)),
assert(open(begin,0)),
assert(mark(end)),
repeat,
searching,!.
result:-
not(fail_),
retract(closed(0,_,0)),
closed(m,_,_),
resulting(m),!.
result:-beep,write("sorry don't find a road!").
searching:-
open(state,pointer),
retract(open(state,pointer)),
closed(no, _, _),no2=no+1,
asserta(closed(no2,state,pointer)),
!,step4(no2,state).
searching:-assert(fail_).
step4(_,state):-mark(end),equal(state,end).
step4(no,state):-step56(no,state),!,fail.
step56(no,stateX):-
rule(stateX,stateY),
not(open(stateY,_)),
not(closed(_,stateY,_)),
assertz(open(stateY,no)),
fail.
step56(_,_):-!.
equal(X,X).
repeat.
repeat:-repeat.
resulting(N):-closed(N,X,M),asserta(res(X)),resulting(M).
resulting(_):-res(X),write(X),nl,fail.
resulting(_):-!.
rule(X,Y):-road(X,Y).
run
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -