简体   繁体   English

操作序言表

[英]prolog list manipulating

I have the following code which basically needs to add a list as an item to a greater list. 我有以下代码,基本上需要将一个列表作为项目添加到更大的列表中。 So NewBoardsList should contain all the boards generated in the moves_generate_board function. 因此,NewBoardsList应该包含由move_generate_board函数生成的所有板。 The problem is that i get a False in Prolog. 问题是我在Prolog中得到了False。 Any help ? 有什么帮助吗?

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]).

I guess problem is in moves_generate_board/3 it looks very unusual. 我猜问题出在moves_generate_board/3这看起来很不寻常。 Maybe you wanted: 也许您想要:

moves_generate_board([],_,[]). 
moves_generate_board([(X,Y,_,_)|T],Board,[NewBoard|List]):- 
  replace((X,Y,-,-),Board,NewBoard), 
  moves_generate_board(T,Board,List).

and about that replace((X,Y,-,-),... those - (dashes).... I'm not sure about what that means 以及关于那个replace((X,Y,-,-),...那些- (破折号)....我不确定那是什么意思

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM