Versions Compared

Key

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

I denne oppgaven skal Sokoban implementeres utvides med en metode for stifinning i rutenettet.funksjoner for raskere flytting av spilleren.

Sokoban skal utvides med to funksjoner, som begge gjør det raskere å flytte spilleren. Dersom spilleren ISokoban-grensesnittet har derfor blitt utvidet med følgende metodemetoder:

  • String movePlayerTo(int x, int y) - flytter spilleren til cellen (x,y) ved hjelp av en sekvens med bevegelser flytt (altså ikke dytt), og returnerer en streng String som representerer stegene i sekvensenflyttene. Flyttene representeres med med tegnene l, r, u, ogfor i indikere retning. Disse skal skrives med stor bokstav dersom flyttet også var et dytt: L, R, U, og D., altså l for left/venstre, r for right/høyre, u for up/opp og d for down/ned. Dersom et kall til metoden gjør at spilleren flytter til venstre og så opp, så skal altså metoden returnere "lu". Hvis flyttet ikke er lovlig/mulig, så skal metoden returnere null.
  • String moveBox(int x, int y, ind dy, int dy) - flytter boksen i cellen (x,y) i retning (dx, dy) ved hjelp av en sekvens med flytt, for om nødvendig å få spilleren i rett posisjon, og så et dytt for å flytte boksen. Metoden skal returne en streng som representerer flyttene og dyttet. Flyttene representeres som beskrevet over, mens det siste dyttet er tilsvarende store bokstav, altså L, R, U, eller D. Som over så skal metoden returnere null, dersom sekvensen ikke er lovlig/mulig.

movePlayerTo-metoden er nok vanskeligst, fordi en må prøve seg frem med ulike sekvenser av flytt for å se om en kan nå frem til ønsker rute. Det kan være lurt å kunne lagre litt hjelpeinformasjon i en rute, for å gjøre det enklere. moveBox-metoden er enklere, og nøkkelen er å innse at for å kunne dytte boksen i den angitt retningen, så må spilleren først flytte seg til riktig (motsatt) side av boksen, før boksen dyttes. Og flytting av spilleren er jo nettopp det movePlayerTo gjør!

For hvert spill har vi laget en "nedlastningspakke" som gjør det lett å importere de nødvendige filene med Digital Compendium-tillegget. Disse finner du under. Når emfs-pakken er importert så må du

...