Versions Compared

Key

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

...

  • Programmet må bestå av minst tre klasser; en klasse for å representere et felt på brettet, en klasse for brettet med ruter og ett hovedprogram for interaksjon med spilleren.
  • Brett-klassen må kunne lese av brett på samme format som brettene oppgitt i Java-filen under.
  • Brett-klassen må ha en toString()-metode som skriver ut brettet slik det er beskrevet under.
  • Spillet må kunne spilles gjennom konsollen. 

 

TegnBetydningUtskrift

'#'

vegg
#######
#.  # #
#$* $ #
#  $@ #
# ..  #
#  *  #
#######
'.'mål
'$'boks
'*'boks på mål
'@'spiller
'+'spiller på mål
' 'tomt felt

...

  • I representasjonen av brettet kan det være lurt å skille mellom de faste (vegger ++) og de bevelige (spilleren ++) delene av brettet
  • For interaksjon med spilleren er det lurt å bruke en Scanner.
Det ligger fire testbrett du kan bruke i filen: objectstructures/SampleLevels.java. Ved å kalle Sokoban(SampleLevels.level3) vil du opprette

...

brettet vist i tabellen over.

...

#.  # #
#$* $ #
#  $@ #
# ..  #
#  *  #
#######
Vurdering

Oppgaven blir vurdert etter hvorvidt spillet kan

  • Nivå 0 (10%): skrive ut brettet ved oppstart.
  • Nivå 1 (30%): flytte spilleren (med input fra brukeren) i et tomt brett; altså ingen vegger, bokser eller mål.
  • Nivå 2 (40%): utvide med vegger, men fortsatt ingen bokser eller mål.
  • Nivå 3 (60%): utvide med bokser som kan flyttes, men ingen mål.
  • Nivå 4 (80%): full støtte for alt ruteinnhold.
  • Nivå 5 (100%): logikk for spillets gang, dvs. oppdage at alle målrutene er dekket av bokser.

Hvert nivå innbærer at all funksjonalitet i nivåene under fungerer som beskrevet.

Eksempel

Eksempel på et fungerende spill (Samplelevels.level4) spilt gjennom konsollen (input er vist i grønt):

 

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

...