Versions Compared

Key

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

...

I denne oppgaven vil vi gå ut ifra allerede implementerte spill. Vi vil legge til nye kommandoer og anvende grensesnitt-mekanismen. Vi vil bygge på oppgavene TicTacToeSokoban og Sudoku

Del 1

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.

...

  • finne en måte å representere brukerhandlinger, dvs. lage en klasse som kan lagre informasjon om handlinger
  • implementere logikk for å reversere og gjenta handlingen som slike objekter representerer
  • administrere angre- og gjenta-stack'er som forklart over (eller tilsvarende logikk)

Del 2

I denne delen skal du definere et grensesnitt (altså et interface) knyttet til innlesing av nye eller tidligere lagrede spill, slik at en lett kan bytte til andre lagringsformat. Du skal lage minst én implementasjon som brukes av spillet ditt, så brukeren kan starte et nytt spill evt. gjenoppta et tidligere lagret spill. Du skal også forklare hvordan du med en annen implementasjon kan støtte et annet lagringsformat.

Del 3

La spillet ditt implementere det allerede definerte grensesnittet ConsoleGame. ConsoleGame-grensesnittet definerer metoder for å initialisere, starte og styre spill:

...