Gibt es einen Konstruktionsfehler, wenn der Status einer Entität enter (), execute () und exit () nicht vollständig nutzt?

9

Ich verfolge Mat Bucklands Programmierspiel-KI anhand eines Beispiels und stelle fest, dass ich nicht immer die Verwendung von enter (), execute () und exit () für den Status einer Entität habe. In einem Rollenspiel kann eine Waffe beispielsweise einen ausgerüsteten Status haben, und ich kann enter () und exit () für diesen Status verwenden, um den Fähigkeitsmodifikator eines Spielers zu addieren oder zu subtrahieren, aber es besteht keine wirkliche Notwendigkeit für die Ausführung ( ). Ist dies ein Konstruktionsfehler in meinem Motor oder ein Mangel dieses Ansatzes?

Charanor
quelle

Antworten:

8

Nachdem Sie das Buch nicht gelesen haben, klingen diese Anrufe wie normale Einstiegspunkte für eine Zustandsmaschine. Um die Anrufe zu verstehen, schauen wir uns an, was sie tun.

enter () - wird ausgeführt, wenn der Status aktiviert ist.

execute () - wird ausgeführt, während der Status aktiviert ist.

exit () - wird ausgeführt, wenn der Status deaktiviert ist.

Diese passen auf jede Art von Zustandsmaschine. Einige Maschinen benötigen nur die Aufrufe 'Ausführen', andere die Eingaben 'Eingeben' und 'Beenden' und wieder andere alle drei.

Beispiel 1 : Maschinengewehrabzug.

  • Ausführen: Feuergeschosse mit festgelegter Geschwindigkeit.

Beispiel 2 : Brücke erzwingen

  • Enter: Brücke erscheinen lassen
  • Beenden: Brücke verschwinden lassen

Beispiel 3 : Persönliche Powerrüstung.

  • Enter: Geben Sie dem Spieler zusätzlichen Schutz
  • Ausführen: Batterien entladen
  • Beenden: zusätzlichen Schutz entfernen
Jari Komppa
quelle
8

Es ist nicht unbedingt ein Zeichen für einen Fehler. Nicht jede Entität oder jeder Staat kann für jede verfügbare Methode verwendet werden. Nur die Methode execute () leer zu lassen, wäre in Ordnung, IMO.

Nathan Reed
quelle