2016-11-09 10 views
0

動作しないメッセージを失敗表示されます。私はサブかどうかを確認したい条件節は、私は、条件文のための句を作成したが、私はtraceコマンドを使用してプログラムをdepureいつ

fail message

リストは私のリストにあります。もしそうなら、カウンターを増やして、後に起こる減分を解消します。それ以外の場合は、私のリストにサブリストを追加します。

マイコード:

if(condition,then,else) :- condition, !, then. 
if(_,_,else) :- else. 

createBombs(B,Q) :- 
    Li = [], 
    C is Q, 
    repeat, 
    random(1,10,X), 
    random(1,10,Y), 
    print(C), 
    if(member([X,Y],B),C is C +1,insert([X,Y],Li,B)), 
    C is C -1, 
    C >= 0. 

insert(X,L,[X|L]). 

それはプロローグでの私の最初のコードですので、非常に愚かなエラーだった場合はごめんなさい。

+4

あまりにも多くの誤解があります...チュートリアルを最初に見てください – CapelliC

+0

しかし私のif節は正しいですか?私はまだ他のコマンドについて研究しています –

答えて

0

非常に少なくとも、あなたはこのようなあなたのif/3を修正しようとすることができます。この定義に

if(Condition, Then, _Else) :- Condition, !, Then. 
if(_, _, Else) :- Else. 

、私が取得:

?- if(between(1,3,2), format("foo\n"), format("bar\n")). 
foo 
true. 

?- if(between(1,3,4), format("foo\n"), format("bar\n")). 
bar 
true. 

あなたのコードでただし、後でrepeatが完全に外にあります削除してください。コメントに記載されているように、あなたがやろうとしていることを理解するのが難しい他の問題が多すぎます。

関連する問題