Skip to content

Verbo 'prendi_da': Attori in contenitori? #10

Description

@tajmone

Il verbo prendi_da va rivisto perché contiene clausole impossibili e contradittorie.

  • Risolvi le falle di logica nel verbo che contraddicono l'assunto che l'oggetto possa anche essere un attore ma, di fatto, i CHECK lo prevengono.
  • Verifica tutti i CHECK che impediscono di eseguire il corpo DOES del verbo a un parametro di classe ACTOR.
  • Cerca di aggiustare la situazione di modo che sia possibile usare questo verbo simulando attori in contenitori tramite l'uso di attributi.

La sintassi:

SYNTAX prendi_da = prendi (ogg) da (detentore)
  WHERE ogg IsA THING
  ...
  AND detentore IsA CONTAINER
  ...

... consente di prendere un attore da un contenitore (incluse un altro attore), ma questo non può accadare dato che Alan non consente di mettere attori in contenitori.

Credo che l'idea originale fosse quella di implementare un qualche sistema per emulare attori in contenitori tramite classi specializzate che ridefinissero il verbo prendi_da — in fatti nel corpo del verbo leggiamo:

      DOES
        IF ogg IsA ACTOR
          THEN SAY THE ogg. "would probably object to that."
            -- actors are not prohibited from being taken in the checks; this is to
            -- allow for example a dog to be picked up, or a bird to be taken out of
            -- a cage, etc.

... ma questo è impedito dai seguenti CHECK:

ADD TO EVERY THING
  VERB prendi_da
    WHEN ogg
      CHECK [...]
      ...
      AND ogg IS spostabile
      ...
      AND ogg IS prendibile
      ...
      AND ogg IN detentore      <-- NON ACCADRÀ MAI!

Una possibile soluzione sarebbe quella di implmentare il verbo prendi_da anche sulla classe object e spostare lì i CHECK che non riguardano gli attori.

Metadata

Metadata

Assignees

No one assigned

    Labels

    💀 bugQualcosa non funziona come dovrebbe⭐ verbi 🎬Concerne: verbi/sintassi

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions