Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

GUI-et har tre deler, fra øverst til nederst:

  • Øverst: En kan angi et nivå/bret e.l. og starte spiller ved å trykke "init and run"-knappen
  • I midten: Rutenettet vises, og hvis det har fokus, så kan en trykke piltastene eller klikke på en rute
  • Nederst: Tekstfelt for å gi inn kommandoer
PlantUML Macro
actor Bruker
actor -> GUI: init og run
GUI -> DinSpillklasse: init(<innhold av øverstetekstfelt>tekstfelt>)
GUI -> DinSpillklasse: getGridProvider()
GUI -> GridProvider: getGridWidth(), getGridHeight()
GUI -> GridProvider: getGridElement(...)
GUI -> DinSpillklasse: getTextFor(...), getImageFor(...)
GUI -> GridProvider: addGridListener(this)
GUI -> DinSpillklasse: run(this)
DinSpillklasse -> GUI: info(...)

Når brukeren trykker "init and run"-knappen vil GUI-et ta innholdet i det øverste tekstfeltet og gi det som argument til spillklassen sin init-metode. Deretter vil den be om å få rutenettet vha. getGridProvider()-metoden. Dette objektet vil så spørres om antall kolonner (getGridWidth()) og rader (getGridHeight()) og selve innholdet (getGridElement(...)), slik at den kan tegne rutenettet. Akkurat hvilken tekst og hvilket bilde som vises pr. rute bestemmes av svaret fra getTextFor(...) og getImageFor(...). Til slutt vil GUI-et registrere seg som lytter, slik at den kan reagrere på fremtidige endringer i rutenett. Til slutt startes selve spillet med et kall til run(...) og denne metoden vil typisk gi oppstartsinfo til brukeren med info(...)-metoden.

 
PlantUML Macro
actor Bruker
actor -> GUI: doCommand
GUI -> DinSpillklasse: doCommand(<innhold av tekstfelt>)
DinSpillklasse -> DinRutenettklasse: <endre rutenett>
DinRutenettklasse -> GUI: gridChanged(...)
GUI -> GridProvider: getGridElement(...)
GUI -> DinSpillklasse: getTextFor(...), getImageFor(...)
DinSpillklasse -> GUI: info(...)