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

📄 queens.pl

📁 PRl教学程序 PRl教学程序 PRl教学程序
💻 PL
字号:
%:-module queens.
:-public queens/2.
draw(M,N):-
        global_get(board,Qb),
	javaMethod(Qb,putSquare(M,N)).
draw(M,N):-
        global_get(board,Qb),
	javaMethod(Qb,clearSquare(M,N)),
	fail.

callQueens(Q,Qb):-
	cputime(Start),
	queens(Q,Qb),
	cputime(End),
	T is End-Start,
	write(executionTime(T)),nl.

queens(Q,Qb):-
	javaMethod(Qb,sleep(500)),
        global_set(board,Qb),
        put(Q,[],R),write(R),nl,
	javaMethod(Qb,sleep(1000)),
	fail.
queens(Q,Qb):-
	global_set(board,[]). % Qb is not valid after return to Java

put([Q1|Qs],Board,Result):-!,
	sel([Q1|Qs],Q,Rs),
	safe(Board,Q,Q),
	length(Qs,L),N is 1+L,
	draw(Q,N),
	put(Rs,[Q|Board],Result).
put([],Result,Result).

safe([Q|Rs],P,M):-!,
  PP is P+1,
  Q\==PP,
  MM is M-1, 
  Q\==MM,
  safe(Rs,PP,MM).
safe([],P,M).

sel([X|Y],X,Y).
sel([X|Y],Z,[X|W]):-sel(Y,Z,W).

⌨️ 快捷键说明

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