⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 311.txt

📁 prolog设计的关于八数码问题的源代码
💻 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 + -