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.