- Where Developers Learn, Share, & Build Careers


I have a problem with the primary language.

I have a board and when I want to see the player does not have pieces with values ​​between 1 and 10, which are called mobile pieces. Codes are shown above:

  test_board ([[piece ('', 12, black), piece ('r2', 2, red), piece ('rb', 11, Slice ('', 12, black), slice ('', 12, black), piece ('', 12, black), piece ('', 12, black), piece ('', 12, black), piece ('', 12, Black)), piece ( '', 12, Black), slice ( '', 12, Black)], [piece ( '', 12, Black), slice ( 'RB', 11, red), the piece ( " Piece ('', 12, black), piece ('', 12, black), piece ('rb', 11, red), piece ('', 12, black), piece ('', 12 , Piece ('', 12, black), piece ('', 12, black) Piece ('', 12, black), piece ('', 12, black), RB ', 11, red) piece (' RB ', 11, red), piece (' ', 12, black) ) piece ( '', 12, Black), slice ( '', 12, Black), slice ( '', 12, Black), slice ( '', 12, Black), slice ( '', 12, Black ), Fragment ('', 12, black)], [piece ('', 12, black), piece ('', 12, piece ('', 12, black), piece ('', 12, black) , Piece ('', 12, black), piece ('', 12, black), piece ('', 12, piece ('', 12, black), piece ('', 12, black), piece ( '', 12, black)], [piece ('', 12, black), piece ('', Piece ('', 12, black), piece ('', 12, black), piece ('x', for 13,), piece ('x', 13, for), piece ('piece (' '', 12, black), piece ('', 12, black)], piece ('', for 12,), piece ('X', for 13,), piece ('', 12, piece ( '', 12, black), piece ('', 12, black), piece ('X', for 13,), piece ('X', 13, for), piece ('', 12, blk ), Piece ('', piece ('', 12, black), piece ('', 12, black)], piece ('x', for 13,), piece ('x', 13, ), Piece ('B6', 10, blue), t Piece ('B6', 6, Blue), Piece ('B4', 4, Blue), Piece ('B5', 5, Blue), Piece ('B7', 7) ('B5 Piece ('B8', 4, Blue), Piece ('B8', 8, Blue), Piece ('B9', '' 5 ',' blue '), piece (' B5 ', 5, blue) Piece ('B2', 2, Blue), Piece ('B5', 5, Blue), 'B4', 4, Blue), Piece ('B7', 7, Blue), Piece ('B4', 4, Blue) Piece ('B3', 3, blue), piece ('B1', 1, blue), piece ('B3', 3, blue), piece ('B6', 6, Blue), slice ('B3', 3, blue) piece ('B2', 2, blue), piece ('B3', 3, blue)], t Ha ( 'B3', 3, blue), the piece ( "B2", 2, blue), the piece ( 'BB' piece ( "B2", 11, blue), the piece ( "B2", 2, blue), piece ( "B", 11, blue), the piece ( 'B3', 3, blue), the piece ( "B '', 11, blue) piece ( 'B 6', 6, blue), the piece ('B2', 2, Blue), Piece ('B7', 7, Blue)], [Piece ('B2', 2, Blue), Piece ('B6 Piece (' B2 ', 4 Piece ('B5', 5, Blue), Piece ('B4', 4, Blue), Piece ('B2', 2, Blue), Piece ('BB', 11, Blue) , Piece ('BF', 0, blue), piece ('BB', 11, blue), piece ('B8 ', 8, blue), piece (' b2 ', 2, blue)]]). Check_mobile_pieces ([], _): - failed Chek_mobail_spes ([Board Head | Boardtel], respondent): - Chek_mobail_pisian_lain (Boardhed defendant); Check_mobile_pieces (BoardTail, rival). Check_mobile_pieces_line ([], _): - failed check_mobile_pieces_line ([LineHead | LineTail], opponent): - piece (_, PieceValue, opponent) = LineHead, ((PieceValue & gt; 0, PieceValue of & lt; 11) - & Gt; true; check_mobile_pieces_line (LineTail, rival)).   

In this example the result should be "yes", but "no" .. why? Can anybody get the error in the code?

Regards

You should ask which query you issue, for me It is not obvious that much Prolog is handled with the instability of variables of behavior, and even knowing that without the rival binding, it is difficult to answer.

Anyway, I think that you will get false because rival is a line, then piece (_, PieceValue, rival) Keeping changing for each element in = LineHead, check_mobile_pieces_line / 2 will fail before the exhibit will make you interested in the exam.

The easiest way to search in the edit list is using member / 2, then if a player sees the moving piece:

  has_movable (player): - test_board (board), member (line, board), peeking one line member (piece (_, value, player), line),% a piece value of player & gt; 0, value & lt; 11.   

To say that the player does not have any trend:

  .... \ Has_movable (player), ... .    

Comments

Popular posts from this blog

Python SQLAlchemy:AttributeError: Neither 'Column' object nor 'Comparator' object has an attribute 'schema' -

java - How not to audit a join table and related entities using Hibernate Envers? -

mongodb - CakePHP paginator ignoring order, but only for certain values -