Prolog を学習しながら、テキストベースのゲームを書いています。これはその一部です。
NewHealth is Health - Damage,
retract(stat(Target, health, Health)),
assert(stat(Target, health, NewHealth)),
静的プロシージャに関するエラーが発生しましたが、簡単な検索で修正されました。ゲームを実行しているときに、すぐにdynamic stat/3
. ただし、その後、Health 変数を宣言するファイルのさらに上にエラーが表示されます。
stat(Target, health, Health),
問題をこれに絞り込みました(プロローグコンソール):
| ?- assert(test(a)).
yes
| ?- listing
test(a).
yes
| ?- dynamic test/1
yes
| ?- listing
yes
動的と宣言された後、静的データベースにはもうありません。しかし、グーグル検索では、私と同じ問題を抱えているケースを見つけることができませんでした. 単一のデータベースを照会して撤回/アサートするだけです。