我有以下代码,基本上需要将列表作为项添加到更大的列表中。因此NewBoardsList应该包含moves_generate_board函数中生成的所有板。问题是我在Prolog中得到一个假。有帮助吗?
moves((Colour,_),Board,NewBoardsList):-
other_colour(Colour,OtherColour),
findall((X,Y,OtherColour,N),
(member((X,Y,OtherColour,N),Board),
threaten_by(Colour,(X,Y,OtherColour,N),Board)),
Options),
moves_generate_board(Options,Board,NewBoardsList).
moves_generate_board([],Board,BoardsList).
moves_generate_board([(X,Y,_,_)|T],Board,List):-
replace((X,Y,-,-),Board,NewBoard),
moves_generate_board(T,Board,[NewBoard|List]).
答案 0 :(得分:2)
我猜问题出现在moves_generate_board/3
看起来很不寻常。
也许你想要:
moves_generate_board([],_,[]).
moves_generate_board([(X,Y,_,_)|T],Board,[NewBoard|List]):-
replace((X,Y,-,-),Board,NewBoard),
moves_generate_board(T,Board,List).
关于那些replace((X,Y,-,-),...
那些-
(破折号)......我不确定这意味着什么