Versions Compared

Key

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

...

Del 1 - Angre og gjenta (50%)

Her skal du implementere kommandoer for å angre (eng: undo) handlinger (legg, trekk, ...) og gjenta (eng: redo) handlinger som er angret. Hvis brukeren angrer en handling, så skal spillet settes tilbake til den forrige tilstanden, dvs. tilstanden før handlingen. Dersom brukeren gjentar en handling (altså angrer angringen) vil handlingen som brukeren angret bli utført på nytt.

...

Obs! For slagskip-spillet skal man ikke implementere angre og gjenta. Se egen artikkel for slagskip. Del 2 skal fremdeles gjøres for slagskip som beskrevet her, med samme metodenavn. Angre- og gjenta-knappene i JavaFX-applikasjonen (se del 3) vil ikke fungere for slagskip.

Del 2 - Lagring (50%)

I denne delen skal du implementere lagring av spill og innlesing av tidligere lagrede spill, slik at en kan fortsette der en slapp, f.eks. med et vanskelig Sokoban-brett. Du må altså definere et egnet filformat, og støtte dette formatet både ved skriving til fil og lesing fra fil. Merk at det kun er nødvendig å lagre nå-tilstanden til spillet, en trenger ikke lagre tilstand knyttet til angring (undo). Det naturlige vil være å ha et tekstlig (i motsetning til binært) format, med én linje pr. rad i spillet og én eller flere tegn pr. rute i raden. Sokoban har forøvrig et definert standardformat (se http://sokobano.de/wiki/index.php?title=Level_format), som det kan være lurt å støtte for å forenkle bruk av eksisterende brett.

...

  • void save(String fileName, String state) - lagrer tilstanden til spillet (state) i en tekstfil med navnet fileName. Her skal filtypen (.txt) ikke være  være med i fileName
  • void load(String fileName) - gjenopptar et spill allerede lagret med filnavnet fileName.

Før du går i gang med denne delen kan det være lurt å ta en titt på wikisiden for Lesing fra og skriving til fil.

Del 3 - JavaFX

Det er laget en JavaFX-applikasjon som har all funksjonalitet fra øving 4, i tillegg til å støtte lagring og angre/gjenta. For at dette skal fungere er det viktig at metodenavn er som beskrevet over, og at koden ellers er som beskrevet i Øving 4. Du kan da kjøre applikasjonen (interfaces > game > PersistentGame.fxml > Run As > FXML Application) og teste spillet ditt. Demonstrer dette for stud.assen din.

...