CC2

Teil 7

C Teil 6: Zeiger | | C Teil 8: ASCII-GFX Canvas

Wir lernen weitere fortgeschrittene Programmiertechniken kennen:

  • Arrays
  • Structs
  • Zeiger-Array Dualismus

Ein klassisches Einsatzgebiet für Arrays und Strukturen ist zum Beispiel:

  • Gegeben: n Spielelemente an n verschiedenen Positionen
  • Gesucht: passende Datenstruktur
    • Speichern der Positionen der n Spielelemente in einem Array mit n Elementen
    • Jedes Element wird als Struktur mit den Positions-Komponenten x und y angelegt
    • Die Struktur kann weitere Eigenschaften wie Farbe, Größe, Typ und Geschwindigkeit enthalten
  • Praxis-Beispiel: Dampfwolke, die sich aus einzelnen Dampfpartikeln zusammensetzt, welche einer Quelle entströmen und sich mit einer gewissen Ausbreitungsgeschwindigkeit ausdehnen. Dabei lernen wir weiterhin einige Features der ASCII-GFX Bibliothek kennen: Canvas-Painting, Side-Scrolling, Sprites, Partikelsysteme.
  • Gesamte Doxygen Dokumentation: www.th-nuremberg.de/docs/html/index.html

Obiger Demo Source-Code auf Source-Forge:

Wir lernen dadurch die Anwendung von komplexen Datenstrukturen kennen, auf denen passende Algorithmen arbeiten können → PROG2/A

Auch auf der Webseite der KI Software Midjourney wurden ASCII-Partikelsysteme eingesetzt (2023):

Midjourney

Praktikum:

Im Praktikum zeigen Sie jeweils Ihren aktuellen Fortschritt bei der Umsetzung Ihrer Spieleidee.

Überlegen Sie, wo Sie in Ihrem Spiel Structs und/oder Arrays algorithmisch sinnvoll einsetzen können. Implementieren Sie dies prototypisch.

Protokoll:

Fragen fürs Protokoll:

  • Sind die Richtlinen für die Abgabe berücksichtigt?
  • Welche klassischen Algorithmen kennen Sie, die auf Arrays arbeiten?
  • Welche klassischen Algorithmen kennen Sie, die mit Strukturen und Zeigern (bzw. Referenzen) arbeiten?
  • Welche Algorithmen kennen Sie, die mit anderen Datenstrukturen arbeiten? Fangfrage

Hausaufgaben:

Dokumentieren Sie im Protokoll den jeweiligen Fortschritt bei der Umsetzung Ihres Spiels!

C Teil 6: Zeiger | | C Teil 8: ASCII-GFX Canvas

Options: