Laboration 1

Att använda ett ramverk för implementera Snake och liknande spel

I denna laboration skall vi, genom att använda oss av ett ramverk, studera hur vi snabbt kan konstruera nya applikationer, som annars skulle kräva betydligt längre tid att implementera.

Uppgiften är att skapa ett förströelsespel i Java genom att använda ett existerande ramverk (dvs ett paket av samarbetande klasser). Ramverket begränsar oss till spel som har följande egenskaper:

Ett nytt spel kan enkelt implementeras med hjälp av ramverket genom att definiera en klass med de regler som gäller för det aktuella spelet. Exempel på detta är spelet Gold som finns implementerat i den bifogade koden för ramverket.

Börja genom att studera:

Lite bakgrund till implementeringen av ramverket:

Kom ihåg att det är viktigt för en programmerare att förstå hur man kan använda ett ramverk. I allmänhet är det inte nödvändigt att förstå hur ramverket är implementerat. För ramverk är det vanligt att ha en länk, t.ex. ‘Use" eller ’Usage’, på API-sidorna. Dessa länkar är en bra startpunkt när man vill börja läsa in ett nytt ramverk eller en ny klass som ingår i ramverket (se javadoc för vårt ramverk).

Uppgifter

Ni skall implementera ett spel, förslagsvis Snake, med användning av bifogat ramverk. Det är tillåtet att välja ett annat spel, men ni kan då, på grund av brister i ramverket, komma att råka ut för problem. I laboration 3 har vi chansen att omarbeta ramverket för att åtgärda en del av dessa brister.

Väljer ni något annat spel än Snake skall ni därför först ha klartecken från en handledare.

Deluppgift 1: Förstå ramverket och visa att ni gör det

Första uppgiften är lite annorlunda, eftersom ni inte skall redovisa något körbart program. I stället skall ni redovisa svar på nedanstående frågor.

Den grundläggande uppgiften är att få en förståelse av det givna ramverket, så att ni kan förklara vad varje klass ansvarar för och hur de olika klasserna kommunicerar med varandra. Vidare är uppgiften, att planera hur ni löser resten av laborationen.

Först läser ni igenom paketets javadoc-dokumentation och dess kod, för att förstå hur allt hänger ihop. Detta är mycket viktigt, både för att lära sig Java (genom att läsa annans kod lär man sig mycket) och för att kunna ta ni skall kunna implementera ert eget spel. Fråga handledarna om ni kör fast.

Skriva svaren i en fil innan ni redovisar det muntligt.

Frågor att besvara:

  1. Vad är skillnaden på GoldModel och GameModel, och hur är de relaterade till varandra?
  2. Vilken metod utför själva ritandet av ‘Gold coins’ i spelet ‘Gold game’?
  3. Vilken metod är det som anropar metoden som ritar ut ‘Gold coins’?
  4. Vad är syftet med GameFactory och hur kan GameFactory utvidgas för att få med ‘Snake game’? (Endast ett kort svar behövs.)
  5. Var återfinns beräkningen och kontrollen av de rörelser som ‘Gold eaters’ gör?
  6. Hur lagras ett spelbräde och i vilken klass?
  7. Beskriv arbetsflödet av programmet. Detta kan göras genom att skissa på hur kontrollen flödar genom olika klasser och metoder.
  8. Ge en plan för hur ni tänker fortsätta med deluppgift 2. Vilka klasser kommer ni att skriva och vad kan ni återanvända?

Ledtrådar:

Deluppgift 2: Implementera en modell för ett nytt spel (andra veckans deluppgift)

Implementera en modell för Snake (eller något annant spel ni valt), som ärver egenskaperna från GameModel-klassen.

Tips och råd (för Snake)


(Original lab av Christer Carlsson)

Menu