Skip to content

Grid ​

initialize ​

Rendert das Hintergrundbild entsprechend der Breite und Höhe.

blockAt: aPoint ​

Nimmt aPoint in Punkt-Notation (z.B. (10 @ 7)) und gibt den Block, der auf dem entsprechenden Quadrat platziert wurde zurück. Liegt dort kein Block, so wird nil zurückgegeben.

INFO

Wir übernehmen hierbei der Einfachheit halber die von Squeak verwendete Orientierung des Koordinatensystems (soweit ich mich erinnern kann: Ursprung unten links, x nach oben, y nach rechts).

placeBlock: aBlock at: aPoint ​

Nimmt aPoint in Punkt-Notation (z.B. (10 @ 7)) und fügt den Block in die Instanz-Variable blocks ein. Dabei müssen zunächst die 2D-Koordinaten in Indizes für blocks umgerechnet werden (Achtung: Squeak-Indizierung beginnt bei 1). Außerdem wird position: auf dem Block aufgerufen, damit dieser sich selbsständig rendern kann.

DANGER

Redundanz bezüglich der Position eines Blocks vermeidbar?

clear: aPoint ​

Entfernt den Block am gegebenen Punkt aPoint.

Instanz-Variablen ​

blocks ​

Eine Collection aus Blöcken bzw. nil, die für jedes Quadrat den dort platzierten Block enthält. blocks speichert die y-Reihen in aufsteigender Reihenfolge und darin die x-Einträge wiederum aufsteigend (also z.B. (0 @ 0), (1 @ 0), (2 @ 0), (0 @ 1), (1 @ 1), (2 @ 1), (0 @ 2), (1 @ 2), (2 @ 2))

width ​

Speichert die Anzahl der Quadrate im Grid entlang der Horizontale.

height ​

Speichert die Anzahl der Quadrate im Grid entlang der Vertikale.

squareSize ​

Speichert die Seitenlänge der einzelnen Quadrate.

Getter und Setter ​

Es sollten Getter für width, height und squareSize vorfügbar sein.