2012-01-19 3 views
0

안녕 얘들 실패하고 내가하는 코드의 조각 작성해야하는 경우프롤로그 그리고 그밖에 회원 술어 나는 프롤로그 게임을하고 있어요

  1. 는 사용자의 숫자 (ArmyNo)를 가지고있다.
  2. X 좌표 가져 오기
  3. Y 좌표를 취합니다. 그런 다음

나는 TempBoard라는 이름의 목록을 가지고 있고 그것은 다음과 같습니다 :이 추가하기 전에 (X를 Y는, ArmyNO, w) 목록에 내가 먼저 원하는

([ 
    (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,-,-) 
]). 

그것을 확인하려면 그것이 이미 있다면.

은이 코드를 사용하여 해당 작업을 수행하려고 시도하지만 제대로 작동하지 않는 것 :

%#######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 
      ) 
     ). 

      %% 
+0

나는 당신의 문제가/3을 대체하는 것이라고 생각한다. 당신은 그것을위한 소스를 제공하지 않고 적어도 하나의 인자가 빠져있는 것 같다. 즉 당신은 아이템을 대체하고 있는가? – gusbro

답변

1
(X, Y, w, ArmyNo) 

w-와 통합하지 않기 때문에 귀하의 예제 목록의 구성원으로 통합 될 수 없다 . 아마도 W을 의미했을 것입니다.