This commit is contained in:
Kristian Knarvik 2020-02-26 19:48:18 +01:00
commit 641d4d06e2

View File

@ -10,58 +10,149 @@
## Deloppgave 2 ## Deloppgave 2
### Brukerhistorier #### Krav
1. En spiller som kan bevege seg på brettet.
#### Posisjon 2. Forskjellige funksjonelle objekter/ruter på kartet (eks. vegg, laser).
3. Roboter dør hvis de går utenfor spillbrettet eller faller i ett hull.
4. Roboter må kunne dytte hverandre.
5. Roboten trenger å kunne ta skade
6. En robot trenger liv
7. En robot som er ødelagt vil komme tilbake i en backup position med to i skade.
8. Vise hendelser som skjer på skjermen med en forsinkelse slik at spilleren ser bevegelsene i spillet
#### Bruker historier for krav 1
*Brukerhistorie* *Brukerhistorie*
* Som robot trenger jeg posisjon for å ha kontroll på hvor jeg er og hvor jeg skal. * Som robot trenger jeg posisjon for å ha kontroll på hvor jeg er og hvor jeg skal.
*Akseptansekrav* *Akseptansekrav*
* Vi har en klasse som lagrer en posisjon for alle roboter på brettet. * Vi har en klasse som lagrer en posisjon for alle roboter på brettet.
* Posisjoner består av x og y koordinater. * Posisjoner består av x og y koordinater.
* Roboten lagrer en instanse av positions classen.
*Brukerhistorie*
* Som spiller trenger jeg en robot for å kunne spille spillet
*Akseptansekrav*
* Vi har en reprensentasjon av en robot. som kan bli plaseret på brettet og flyttet på.
*Arbeidsoppgaver* *Arbeidsoppgaver*
* Lage en klasse som oppfyller akseptansekravene. * Lag en klasse som representer en position.
* Roboten må inneholde en position
#### Tile * Lag en klasse som representerer en robot.
*Brukerhistorie*
* Som brett trenger jeg noe på meg som gir meg funksjonalitet
#### Robot
*Krav*
* Må kunne dø
* Må kunne gjennopstå
* Må kunne ta skade
* Må peke i en gyldig retning
* Må bevege seg i pekende retning
#### Bruker historier for krav 2
*Brukerhistorie* *Brukerhistorie*
* Som robot må jeg kunne dytte en annen robot hvis det er lovlig å dytte roboten, for å kunne gjøre et gyldig trekk * Som brett må jeg kunne ha forskjellige tiles for å kunne vise alle aspektene av spillet
* Som robot må jeg peke i en ortogonal retning for å ha en gyldig bevegelses retning
* Som robot må jeg kunne bevege meg i pekende retning, for å kunne gjøre et gyldig trekk
#### Vegg *Akseptansekrav*
*Krav* * Å kunne plassere en type tile på brettet
* Må kunne stoppe en robot * Brette må kunne vite hvilken tile som er på en bestemt position
*Brukerhistorie* *Brukerhistorie*
* Som vegg må jeg stoppe en robot fra å gå gjennom meg for hindre dem å gjøre et ugyldig trekk * Som vegg må jeg stoppe en robot fra å gå gjennom meg for hindre dem å gjøre et ugyldig trekk
* Som vegg må jeg kunne bli plassert i forskjellige retninger for å kunne bestemme den funksjonelle retningen til veggen * Som vegg må jeg kunne bli plassert i forskjellige retninger for å kunne bestemme den funksjonelle retningen til veggen
#### Brett *Akseptansekrav*
*Krav* * En robot som prøver å gå gjennom en vegg blir stoppet.
* Må kunne ha forskjellige tiles * kunne plasere vegger i forskjelige retninger
*Arbeidsoppgaver*
* Lag en representasjon av en vegg
* Endre bevegelses metoden til roboten slik at den følger funksjonaliteten til vegger
* Kunne plasere veggen i forskjellige retninger
* Leg til en represntation av et hull.
* Lag en representasjon av en tile
* Legg til en metode i brettet som forteler oss hvilken tile som er i en bestemt position
* Legg til en måte får å kunne lage et brett med forskjelige tiles i spesifikke positioner
#### Bruker historier for krav 3
*Brukerhistorie* *Brukerhistorie*
* Som brett må jeg kunne ha forskjellige tiles for å kunne vise alle aspektene av spillet * Som spiller må roboten min kunne dø, for å håntere om roboten tar for mye skade eller går i et hull/av kartet
#### Hull *Akseptansekrav*
*Krav* * Roboten mister et liv hvis den går i et hull eller av brettet
* Må kunne drepe en robot * Roboten blir fjernet fra brettet
#### Spiller *Arbeidsoppgaver*
* legg til en metdoe som fjerner liv fra roboten
* legg til en metode som fjerner en robot fra brettet
* legg til en metode som sjekker positionen til roboten for å se om den er gått i et hull eller om den har gått
utenfor brettet
#### Bruker historier for krav 4
*Brukerhistorie*
* Som robot må jeg kunne dytte en annen robot hvis det er lovlig å dytte roboten, for å kunne gjøre et gyldig trekk
*Akseptansekrav*
* Hvis en robot beveger seg til en position hvor det er en annen robot blir den andre roboten bli dytte så lenge den
kan bli dyttet.
* hvis den andre roboten blir blokkert av en vegg så kan den ikke bli dyttet og ingen av robotene flytter på seg.
* hvis det er flere roboter på rekke så gitt at det ikke er noen vegg som stopper de blir alle robotene flyttet.
*Arbeidsoppgaver*
* legg til funksjonalitet for å sjekke om det er en annen robot i veien.
* legg til funksjonalitet for å sjekke om den andre roboten kan bli dyttet i retningen den første roboten peker.
* legg til funksjonalitet for å dytte roboter
#### Bruker historier for krav 5
*Brukerhistorie*
* Som spiller må roboten min kunne ta skade, for å håntere påvirkning fra objekter som avgir skade til roboter
*Akseptansekrav*
* roboten sin skade verdi blir økt hvis den tar skade.
*Arbeidsoppgaver*
* legg til en skade verdi i roboten som holder styr på mengden skade roboten har.
* legg til en metode for å sette skaden til roboten.
* legg til en metode for å hente ut skaden til roboten.
#### Bruker historier for krav 6
*Brukerhistorie*
* Som spiller trenger roboten min liv for å kunne tape
*Akseptansekrav*
* Roboten har en verdi som reprensenterer mengden liv den har
*Arbeidsoppgaver*
* Legg til en liv verdi i robot klassen.
#### Bruker historier for krav 7
*Brukerhistorie* *Brukerhistorie*
* Som spiller må roboten min kunne gjennopstå om den har flere liv, for å kunne spille videre * Som spiller må roboten min kunne gjennopstå om den har flere liv, for å kunne spille videre
* Som spiller må roboten min kunne dø, for å håntere om roboten tar for mye skade eller går i et hull/av kartet
* Som spiller må roboten min kunne ta skade, for å håntere påvirkning fra objekter som avgir skade til roboter *Akseptansekrav*
* En dø robot respawner i en backup position om den har flere liv.
* Roboten har 2 i skade etter den respawner
*Arbeidsoppgaver*
* Lag en metode som respawner en robot i en backup position og som setter skaden til roboten til 2
#### Bruker historier for krav 8
*Brukerhistorie*
* Som spiller trenger jeg at det er litt forsinkelse i spiller slik at jeg kan se hva som faktisk skjer.
*Akseptansekrav*
* det er en forsinkelse mellom hver handlig som skjer i spillet slik at vi kan følge med på hva som skjer.
*Arbeidsoppgaver*
* legg til en forsinkelse mellom hver handling
* sørg for at forsinkelsen ikke kresjer spillet.