Übung 11: Array-basierte Gitterraster¶
Teil 1¶
Beginne mit dem Programm am Ende von Array-basierte Gitterraster. Ändere es so, dass nicht nur der Block geändert wird, auf den der Benutzer klickt, sondern auch die Blöcke der Quadrate neben dem Klick des Benutzers. (5 Punkte) Vergewissere dich, dass das Programm nicht abstürzt und den Klick trotzdem entsprechend behandelt, wenn der Benutzer auf eine Kante klickt. (5 Punkte)

Beispiel einer funktionierenden Übung 11¶
Teil 2¶
Erstelle ein anderes Programm, und beginne erneut mit dem Programmcode am Ende von Array-basierte Gitterraster.
Schreibe eine Schleife, in der alle im Raster ausgewählten Zellen gezählt und ausgegeben werden. Füge diesen Programmcode am Ende deiner Funktion on_mouse_press
ein. (2 Punkte)
Total of 1 cells are selected.
Total of 2 cells are selected.
Total of 3 cells are selected.
Total of 2 cells are selected.
Total of 3 cells are selected.
Total of 4 cells are selected.
Total of 5 cells are selected.
Total of 6 cells are selected.
Total of 7 cells are selected.
Total of 8 cells are selected.
Total of 9 cells are selected.
Schreibe eine weitere Schleife, die angibt, wie viele Zellen in jeder Zeile ausgewählt sind: (3 Punkte)
Total of 7 cells are selected.
Row 0 has 0 cells selected.
Row 1 has 0 cells selected.
Row 2 has 2 cells selected.
Row 3 has 2 cells selected.
Row 4 has 1 cells selected.
Row 5 has 2 cells selected.
Row 6 has 0 cells selected.
Row 7 has 0 cells selected.
Row 8 has 0 cells selected.
Row 9 has 0 cells selected.
Total of 8 cells are selected.
Row 0 has 0 cells selected.
Row 1 has 0 cells selected.
Row 2 has 3 cells selected.
Row 3 has 2 cells selected.
Row 4 has 1 cells selected.
Row 5 has 2 cells selected.
Row 6 has 0 cells selected.
Row 7 has 0 cells selected.
Row 8 has 0 cells selected.
Row 9 has 0 cells selected.
Aktualisiere den Programmcode so, dass er die Anzahl in Zeilen und Spalten ausgibt: (1 Punkt)
Total of 5 cells are selected.
Row 0 has 1 cells selected.
Row 1 has 1 cells selected.
Row 2 has 1 cells selected.
Row 3 has 1 cells selected.
Row 4 has 1 cells selected.
Row 5 has 0 cells selected.
Row 6 has 0 cells selected.
Row 7 has 0 cells selected.
Row 8 has 0 cells selected.
Row 9 has 0 cells selected.
Column 0 has 5 cells selected.
Column 1 has 0 cells selected.
Column 2 has 0 cells selected.
Column 3 has 0 cells selected.
Column 4 has 0 cells selected.
Column 5 has 0 cells selected.
Column 6 has 0 cells selected.
Column 7 has 0 cells selected.
Column 8 has 0 cells selected.
Column 9 has 0 cells selected.
Aktualisiere den Programmcode, damit das Programm auch ausgibt, wie viele Zellen fortlaufend in einer Reihe ausgewählt sind, wenn diese Anzahl größer als 2 ist. (4 Punkte)
Erstelle dazu eine neue Variable (wie continuous_count
), die für jede Zeile auf Null zurückgesetzt wird. Wenn der aktuelle Rasterplatz eins ist, dann addieren Sie eins zu continuous_count
. Wenn es Null ist, prüfe, ob continuous_count
größer als 2 ist. Wenn ja, gib die Anzahl aus. Setze sie davon unabhängig auf Null zurück.
Du musst auch dasselbe if
ausführen, nachdem die Schleife mit der Zeile abgeschlossen ist. Wenn die Reihe bis zur Kante des reicht, werden die Blöcke in dieser Reihe ohne diese zweite Prüfung nicht ausgelöst.
Total of 18 cells are selected.
Row 0 has 0 cells selected.
There are 7 continuous blocks selected on row 1.
Row 1 has 7 cells selected.
Row 2 has 0 cells selected.
There are 4 continuous blocks selected on row 3.
Row 3 has 4 cells selected.
Row 4 has 0 cells selected.
There are 4 continuous blocks selected on row 5.
Row 5 has 4 cells selected.
There are 3 continuous blocks selected on row 6.
Row 6 has 3 cells selected.
Row 7 has 0 cells selected.
Row 8 has 0 cells selected.
Row 9 has 0 cells selected.
Column 0 has 1 cells selected.
Column 1 has 3 cells selected.
Column 2 has 3 cells selected.
Column 3 has 3 cells selected.
Column 4 has 3 cells selected.
Column 5 has 1 cells selected.
Column 6 has 1 cells selected.
Column 7 has 1 cells selected.
Column 8 has 1 cells selected.
Column 9 has 1 cells selected.