Пролог Если Тогда Остальное терпит неудачу с предикатом участника - PullRequest
0 голосов
/ 19 января 2012

Здравствуйте, ребята, я работаю над прологом и мне нужно написать кусок кода, который будет:

  1. Возьмите номер (ArmyNo) у пользователя.
  2. Взять координату X
  3. Взять координату Y.

Тогда у меня есть список с именем TempBoard, и он выглядит так:

([
    (1,1,-,-),(1,2,-,-),(1,3,-,-),(1,4,-,-),
    (2,1,-,-),(2,2,-,-),(2,3,-,-),(2,4,-,-),
    (3,1,-,-),(3,2,-,-),(3,3,-,-),(3,4,-,-),
    (4,1,-,-),(4,2,-,-),(4,3,-,-),(4,4,-,-)
]).

прежде чем я добавлю это (X, Y, w, ArmyNO) в список, я сначала хочу проверить его, если он уже есть.

Я попытался сделать это с помощью этого кода, но он не работает должным образом:

%#######Got the number####
        repeat,
    %Get Cordinates X & Y.
    writelist( [TempBoard,'select coordinates for the horizontal axis 1 to 4 to place          your soldier Mr. Human',nl]),
    read(X),
    writelist(['select coordinates for the vertical axis 1 to 4 to place your soldier Mr. Human',nl]),
    read(Y),
    %Check if they are in the list.
          (
              member( (X,Y,w,ArmyNo),TempBoard )  ->
                       (  replace((X,Y,w,ArmyNo),TempBoard,NewBoard) ) ;
                 (
             writelist(['selected positions are not available in the table Mr.Human',nl]) , fail
             )
          ).

          %%

1 Ответ

1 голос
/ 19 января 2012
(X, Y, w, ArmyNo)

нельзя объединить ни с одним из участников вашего списка примеров, поскольку w не объединяется с -.Возможно, вы имели в виду W.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...