📄 shuifu3.pro
字号:
domains
list=integer*
llist=list*
predicates
go
fill(integer,integer,integer,integer,integer,integer)
append(list,llist,llist)
member(list,llist)
pull(integer,integer,llist,integer,integer,integer)
wri(llist)
clauses
fill(X,Y,M,Y,M,_):-X>=0,X<M.
fill(X,Y,X,N,_,N):-Y>=0,Y<N.
fill(X,Y,0,Y,M,_):-X>0,X<=M.
fill(X,Y,X,0,_,N):-Y>0,Y<=N.
fill(X,Y,M,Y1,M,_):-U=M-X,Y1=Y-U,P=X+Y,P>=M,Y>0.
fill(X,Y,X1,N,_,N):-P=X+Y,P>=N,X>0,U=N-Y,X1=X-U.
fill(X,Y,0,Y2,_,N):-P=X+Y,P<=N,X>0,Y2=X+Y.
fill(X,Y,X2,0,M,_):-P=X+Y,P<=M,Y>0,X2=X+Y.
append(H,T,[H|T]).
member(H,[H]).
member(H,[H|_]).
member(H,[_|T]):-member(H,T).
wri([[A,B]]):-write(A,' ',B),nl.
wri([[A,B]|T]):-wri(T),write(A,' ',B,' '),nl.
pull(C,Y,T,_,_,C):-append([C,Y],T,T1),wri(T1).
pull(X,Y,T1,A,B,C):-fill(X,Y,X1,Y1,A,B),
not(member([X,Y],T1)),
append([X,Y],T1,T2),
pull(X1,Y1,T2,A,B,C).
go:-A=4,B=3,C=2,
pull(0,0,[],A,B,C);write("fail").
goal
go
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -