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

📄 shuifu.bak

📁 人工智能课程学习中的作业
💻 BAK
字号:
/* input A,B,C.*/

/* notice:C<A. */
domains
	int=integer
	list=integer*
	llist=list*
predicates
	go(int,int,int)
	fill(int,int,int,int,int,int)
	append(list,llist,llist)
	member(list,llist)
	water(int,int,llist,int,int,int)
	writes(llist)
clauses
        go(A,B,C):-water(0,0,[],A,B,C);write("fail").
        
	water(C,Y,T,_,_,C):-append([C,Y],T,T1),
			   writes(T1).
	water(X,Y,T1,A,B,C):-fill(X,Y,X1,Y1,A,B),
		not(member([X,Y],T1)),
		append([X,Y],T1,T2),
		water(X1,Y1,T2,A,B,C).
	append(H,T,[H|T]).
        
	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.
	
	member(H,[H]).
	member(H,[H|_]).
	member(H,[_|T]):-member(H,T).
	
	writes([[A,B]]):-write(A,' ',B),nl.
	writes([[A,B]|T]):-writes(T),
		        write(A,' ',B,' '),nl.
goal
	write("A= "),readint(A),
	write("B= "),readint(B),
	write("C= "),readint(C),
        go(A,B,C).

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -