28 lines
1.2 KiB
Markdown
28 lines
1.2 KiB
Markdown
|
# Tilstand og oppførsel – Location
|
|||
|
|
|||
|
Oppgaven handler om en `Location`-klasse, som holder rede på $`(x,y)`$-posisjonen til en figur som beveger seg i et rutenett.
|
|||
|
|
|||
|
`Location`-klassen har følgende metoder:
|
|||
|
|
|||
|
- `up()` - beveger figuren en rute opp
|
|||
|
- `down()` - beveger figuren en rute ned
|
|||
|
- `left()` - beveger figuren en rute til venstre
|
|||
|
- `right()` - beveger figuren en rute til høyre
|
|||
|
- `getX()` - returnerer x-posisjonen til figuren
|
|||
|
- `getY()` - returnerer y-posisjonen til figuren
|
|||
|
|
|||
|
Merk at konvensjonen innen datagrafikk og rutenettbaserte spill er at $`x`$ øker mot høyre (som i matte) og $`y`$ nedover (altså motsatt av i matte).
|
|||
|
|
|||
|
## Del 1 - Tilstandsdiagram
|
|||
|
|
|||
|
Tegn et tilstandsdiagram for en tenkt bruk av Location-klassen. Velg selv passende tilstandsvariable for $`(x,y)`$-posisjonen.
|
|||
|
|
|||
|
## Del 2 - Java-kode
|
|||
|
|
|||
|
Skriv Java-kode for `Location`-klassen med oppførsel som beskrevet over.
|
|||
|
|
|||
|
Lag en passende `toString()`-metode og en `main`-metode, slik at du kan sjekke at oppførselen stemmer med tilstandsdiagrammet (bruk samme start-tilstand og sekvens av kall).
|
|||
|
|
|||
|
Testkode for oppgaven finner du her: [src/test/java/stateandbehavior/LocationTest.java](../../src/test/java/stateandbehavior/LocationTest.java).
|
|||
|
|