walls(This) :-
append(This, NewMap),
length(NewMap, N),
numWalls(NewMap, W),
W >= N/10.
numWalls([], _, 0).
numWalls('w'|Tail, W) :-
W is W1 + 1,
numWalls(Tail, W1).
numWalls(_|Tail, W):-
numWalls(Tail, W).
行ごとにコメントアウトし、numWalls(NewMap、W)、行を削除するまでfalseになります。追加は2次元配列をフラット化し、lengthはフラット化されたマップの適切な長さを返します。リストのリストに「w」が表示される回数を数える必要があり、リストの10%以上が「w」の場合はTrueを返します。
walls(Maps) :-
append(Maps, NewMap),
length(NewMap, N),
print(NewMap),
numWalls(NewMap, W),
print(W) .
numWalls([], 0).
numWalls(['w'|Tail], W) :-
numWalls(Tail, W1),
W1 is W-1.
numWalls([_|Tail], W):-
numWalls(Tail, W).
「エラー:is / 2:引数が十分にインスタンス化されていません」エラーは私のisステートメントにあるように見えますか?