1 2022-02-21: Pygame Tetris¶
1.1 Introductie¶
Vandaag implementeren we Tetris.
De GIT-repository is te vinden op:
https://github.com/takis-mosa/prog4-exercises/tree/main/src
Zorg dat de testen in test_t2_tetris.py werken.
Hiervoor dien je onder andere de methods van een class “Board” te implementeren.
Als je deze class geimplementeerd hebt, dien je een tweede class af te werken: “PygameBoard”. Deze erft van “Board” maar voegt de draw en draw_shape methods toe om respectievelijk het bord en de huidige blok te tekenen.
1class Board:
2 def __init__(self, width, height):
3 pass
4
5 # ...
6
7
8class PygameBoard(Board):
9 def draw(self):
10 pass
11
12 def draw_shape(self):
13 pass
Hier zie je de voorstelling van een leeg bord:
1
2data = [
3 [-1, -1, -1, -1],
4 [-1, -1, -1, -1],
5 [-1, -1, -1, -1],
6 [-1, -1, -1, -1],
7 [-1, -1, -1, -1],
8]
Hier zie je de voorstelling van een bord met 2 geplaatste blokken, linksonder een vierkante blok in kleur 4, en uiterst rechts een rechthoekige blok van 4 blokken hoog met kleur 2:
1
2data = [
3 [-1, -1, -1, +2],
4 [-1, -1, -1, +2],
5 [-1, -1, -1, +2],
6 [+4, +4, -1, +2],
7 [+4, +4, -1, +2],
8]
1.2 Vormen¶
In het bestand t2_tetris_shapes.py vind je de voorstellingen van alle Tetris blokken, inclusief alle rotaties van de blokken.
Hier zie je hoe de O vorm (vierkante blok) voorgesteld wordt:
1shape_o = [
2 [[1, 1], [1, 1]],
3]
Deze blok heeft slechts 1 rotatie.
Hier zie je hoe de I vorm (lange rechthoekige blok) voorgesteld wordt:
1shape_i = [
2 [
3 [1],
4 [1],
5 [1],
6 [1],
7 ],
8 [
9 [1, 1, 1, 1],
10 ],
11]
Deze blok heeft 2 rotaties.
1.3 Kleuren¶
In het bestand t2_tetris_colors.py vind je de kleuren die voor de blokken gebruikt kunnen worden.
1COLORS = [
2 (255, 0, 0),
3 (0, 255, 0),
4 (0, 0, 255),
5 (0, 255, 255),
6 # ...
7]
1.4 Spel¶
In het bestand t2_testris_game.py wordt het spel zelf met behulp van pygame geimplementeerd.