これは、現在ソース コードに含まれているものを示すコード スニペットです。
A morph is a kind of thing.
A morph has some text called animal name.
A serum is a kind of thing.
Revelation relates one serum to one morph. The verb to reveal (he reveals, he revealed, it
is revealed, he is revealing) implies the revelation relation.
私のゲームでは、血清を飲んでプレイヤーが特定の動物に変身できるようにしたいと考えています。その動物の名前は、「動物名」というテキスト プロパティとして保存されます。血清そのものだけを指定してこの名前を参照できるようにしたいので、モーフと血清オブジェクトの関係を追加しました。
次に、次のルールを追加します。
Instead of drinking a serum:
say "You can now become a [animal name of
morph revealed by noun].";
now the morph revealed by the noun is held by the player;
ここで行っているのは、このメッセージを出力してから、関連するモーフをプレイヤーのインベントリに移動することです。他の理由でこれを行っていますが、これを行う必要があります。
たとえば、次のアサーションがあるとします。
Felis morph is a morph. Cat serum is a serum.
Cat serum reveals felis morph.
The animal name of felis morph is "cat".
ゲーム内で猫の血清を飲むと、「猫になれるようになりました」と表示され、felis モーフがプレイヤーのインベントリに追加されると思います。
ただし、解決方法がわからないという2つのエラーが発生します。
1) 'say "you can now be a [名詞で表されるモーフの動物名]." という文では、'名詞で表されるモーフの動物名' をプロパティにするつもりのように見えますが、'a morph '所有者が誰であるか、または何であるかについて十分に具体的ではありません。
2) あなたは「名詞によって明らかにされたモーフがプレイヤーによって保持されるようになりました」と書きました: しかし、これは十分に明示的ではなく、「猫がバッグの中にいる」などの特定のものの間の明確な関係を設定する必要があり、それ以上のものではありません「今、猫は女性に運ばれている」のようにとらえどころのない。(どの女性ですか?それが問題です。)
私が追加したルールは機能したくないようです。それは、[名詞によって明らかにされるモーフの動物名] の部分と、「名詞によって明らかにされるモーフ」の部分を中心に展開します。しかし、それらは完全に合理的なもののように聞こえます。名詞で表されるモーフの動物名は、発言可能なステートメントでなければなりません。名詞によって表されるモーフは、完全に具体的でなければなりません。結局のところ、啓示は 1 つの血清を 1 つのモーフに関連付けると指定しました。
問題は何ですか?というか、明らかにされたモーフの動物名をテキスト置換として取得するにはどうすればよいですか?また、血清によって明らかにされたモーフの状態を変更するにはどうすればよいでしょうか?