Göm menyn

Introduktion till Tetris

Introduktion till Tetris

Utöver att titta på enskilda delar av Java och OO kommer labbserien också att ge dig möjlighet att skriva ett fullständigt program. Där kommer du också att få utforska olika OO-begrepp och modelleringsfrågor, och du kommer att testa enklare GUI-programmering i Java.

Det program vi har valt är ett enklare Tetris-spel. En fördel med Tetris som spel är att det inte är så krävande i fråga om t.ex. animering, kollisionsdetektering och andra knepigheter, så att vi kan fokusera mer på programmering och hur man kan tänka för att skriva ett objektorienterat program.

Ämnen som kommer att ingå i Tetris-delen av labbserien är bland annat följande. Som du ser motiveras alla ämnen både av behov i spelet och av det man behöver lära sig i kursen!

  • Modellera enskilda objekt:
    • Spelbräde – enklare objektorienterad modellering
    • "Brickor" med form och färg – mer objektorienterad modellering
    • "Visare" för spelbräde – uppdelning av ansvarsområden
  • Modellera sammanhang:
    • Hur vet "visaren" när något har ändrat sig? – hur man kan tänka på dataflöde i ett program
  • Visualisering och GUI:
    • Enkelt, med text – att börja enkelt för att kunna testa koden tidigt
    • Grafiskt – "rita" block att börja enkel GUI-programmering
    • Menyer, tangentbordshantering, ... – begrepp i händelsehantering (events) med mera
  • Spelmekanik:
    • "Driva" spelet med en timer – en introduktion till tidsstyrd programmering
    • Hantera spelets regler – en hel del "ren programmering"
    • Highscorelista – mer OO-modellering
    • Rotation av brickor, ... – implementera algoritmer i Java
    • Powerups – hur programmerar man modulärt?

Detta varvas med uppgifter utanför Tetris, när vi behöver titta på t.ex. vissa modelleringsfrågor som inte passar in lika bra i Tetris.

För att leda dig åt rätt håll när du omsätter teori till praktik är de första delarna i Tetris i "tutorial"-form, där vi ganska detaljerat diskuterar hur man kan tänka för att överföra idéerna till kod. Mot slutet av labbserien får du gradvis mer och mer frihet – och färre detaljerade ledtrådar.

Att göra: Prova Tetris

  1. Läs gärna på lite om Tetris. Det kan hjälpa dig i resten av labbserien.

  2. Om du inte har spelat Tetris tidigare: Testa någon gratisvariant, t.ex. M-x tetris RET i vissa varianter av Emacs. Uppgifterna kommer att förutsätta att du vet hur Tetris fungerar.

Att förstå: Bryta ner i steg, milstolpar

Hur programmerar man ett lite större sammanhängande projekt såsom ett Tetris-spel? Ett tips är att bryta ner det i steg eller milstolpar som kan implementeras i tur och ordning – helst på ett sätt som gör att man kan testa varje steg för sig och känna att man faktiskt har åstadkommit något. Instruktionerna för Tetris är uppbyggda på detta sätt, speciellt efter de första inledande stegen.

Labb av Jonas Kvarnström, Mikael Nilsson 2014–2020.


Sidansvarig: Jonas Kvarnström
Senast uppdaterad: 2020-01-21