2016-11-20 6 views
0

なぜプローブは実行されませんか?これはプログラム全体ではありませんが、答えを見つけるのに十分なコードでなければなりません。はい、私はすでに答えのためにスタックオーバーフローを精査しましたが、Prologのための多くの助けはありません。掃海艇のゲームの一部です。なぜプローブは実行されませんか?

play :-  
    play(0). 

play(M) :- 
    N is M + 1, 
    Suf <- N, 
    display_board(visible), nl, 
    format("Your ~d~a move~n", [N,Suf]), 
    retrieve('Coordinates? ', [A,B]), 
    format("DEBUG: probing at coordinates [~d,~d]~n", [A, B]), 
    !, probe(A,B), 
    play(N). 


probe(X, Y) :- 
    write("enter probe"), 
    located_at(Who, X, Y, C), 
    C = 'b', 
    write('should probe '), 
    write('at ['), 
    write(X), write(','), write(Y), write(']'), nl. 
    :- style_check(+singleton). 

答えて

1

は、私たちはバックステップと最初に見つけてみましょう:なぜプログラムもをコンパイルしないのですか?あなたが投稿プログラムを相談すると

、私が手:有効なPrologの構文ではありません

 
    Suf <- N 

を:

 
ERROR: file.pl:6:6: Syntax error: Operator expected 

これが書かれた行です。

したがって、まずこれを修正することをお勧めします。

実際に、私はさらに取得:また、良い兆候ではありません

Warning: file.pl:14: Singleton variables: [Who]

。しかし、ERRORはより重大であり、節全体のコンパイルを妨げる。

+0

これはファイル全体ではないため、コンパイルされません。完全なファイルを含めることを希望しますか? – Luke

+1

私が一番好きなのは、解決したい問題を正確に示す最小限の例です!つまり、理想的には、問題に実際には関連していないファイルからすべてを削除し、明確に表示する部分を含めてください。答えを編集してファイルのすべての関連部分を表示し、残りの部分は除外することをお勧めします。 – mat

関連する問題