Versions Compared

Key

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

Oppgaven handler om en Sokoban-klasse som holder representasjon, logikk og funksjonalitet for å spille spilllet Sokoban gjennom konsollen.

Oppgaven handler om en Sokoban-klasse som holder representasjon, logikk og funksjonalitet for å la to spillere spille ”Sokoban” gjennom konsollen.Oppgaven handler om spillet Sokoban. Sokoban består av et brett som inneholder mål, bokser, vegger og en spiller. Spilleren skal forsøke å flytte alle boksene til et mål. Spilleren vinner spillet når alle boksene står på et mål.

Oppgaven omfatter tre klasser, Cell, Sokoban og SokobanProgramCell-klassen representer hvert enkelt felt på brettet og dekkes av del 1. Del 2 omfatter Sokoban-klassen, som kapsler inn brettet og har metoder for å utføre trekk og sjekke om spillet er avsluttet. Begge disse dele har har JExercise-tester. SokobanProgram-klassen lages i del 3 og håndterer tekstbasert interaksjon og bruker Sokoban-klassen. Her skal spilleren taste inn ønsket trekk etter tur helt til man har vunnet eller gir opp. 

Del 1 - Representasjon av felter (15 %)

Denne klassen er en hjelpeklasse for å holde styr på verdien til hvert enkelt felt på brettet.

...

Implementer støtte for tilstand og metoder beskrevet over slik at JExercise-testkoden fullfører feilfritt. Testkoden finner du her: 

Del 2 – Logikk og representasjon av brett (60 %)

Tilstanden i Sokoban-klassen må holde rede på flere ting. Man må håndtere hvordan brettet ser ut til enhver tid. Videre må man holde styr på hvor målene på brettet befinner seg. Spillerens posisjon må også lagres.

...

Implementer støtte for tilstand og metoder beskrevet over slik at JExercise-testkoden fullfører feilfritt. Testkoden finner du her: 

Del 3 - Fullt fungerende spill, med tekstlig interaksjon (25 %)

Lag SokobanProgram klasse som lar deg spille spillet gjennom konsollen. Programmet må:

  • skrive ut brettet.
  • be om og lese inn retningen spilleren skal bevege seg med en Scanner. Vanlig spillkutyme er at ’w’, ’s’, ’a’ og ’d’ representerer henholdsvis bevegelse fremover (nord), bakover (sør), venstre (vest) og høyre (øst). Hvis spilleren forsøker et ulovlig trekk, e.g. gå inn i en vegg eller skyve en boks på en annen boks, skal det skrives ut en beskjed om at trekket er ulovlig.
  • utføre trekket.
  • gjenta dette helt til spilleren har vunnet eller valgt å avslutte. Hvis spilleren vinner må dette skrives ut til konsollen.

Eksempel på fungerende spill (input er vist i grønt):

Image AddedImage AddedImage Added

 

Include Page
Bunntekst for JExercise-oppgaver
Bunntekst for JExercise-oppgaver

...