C-Kurs/Pong
Hier soll das Spiel Pong Schritt für Schritt implementiert werden. Die Anzeige des Spielfelds soll durch ASCII-Zeichen realisiert werden, sodass das Spiel in einem Terminal laufen kann.
Leider ist es nicht ganz einfach, einzelne Tasten einzulesen, wie sie gebraucht werden, wenn der Benutzer den Schläger bewegen möchte. scanf arbeitet gepuffert und gibt die Eingabe erst nach Betätigung der Enter-Taste an das Programm. Wir verwenden deswegen die C-Programmbibliothek curses, die uns entsprechende Funktionen zum Abfragen eines Tastendrucks liefert.
Inhaltsverzeichnis
Aufgabe
curses initialisieren
Erstmal müssen wir das Headerfile für curses includen:
#include <curses.h>
Schreibe jetzt eine Funktion void init(), die für das Initialisieren von curses zuständig wird. Sie enthält folgende Befehle:
initscr();
aktiviert cursesnoecho();
damit Buchstaben der getippten Tasten nicht im Terminal erscheinencbreak();
deaktiviert das Puffern der Terminalzeilekeypad(stdscr, TRUE);
aktiviert spezielle Tasten, wie die Pfeiltastenhalfdelay(1);
damit die Funktion, die später auf einen Tastendruck wartet, nach einer Zehntel Sekunde beendet wird
Jetzt folgt die main-Funktion. Sie enthält als ersten Aufruf unsere init-Funktion. Unser Programm sollte beim Beenden curses vernünftig deaktivieren, weswegen als letzter Aufruf in der main-Funktion folgender sein sollte:
endwin();
Wenn die Quelltextatei pong.c heißt, kann sie ab jetzt mit folgendem Befehl kompiliert werden:
gcc -lcurses pong.c
Variablen für den Zustand des Spiels
Ausgeben des Spielfelds
Verarbeiten der Tastendrücke
Kollisionen des Balls erkennen
Erkennen, wenn der Ball nicht vom Schläger getroffen wurde
alles in ein rundenbasiertes Spiel stecken
Kommentare
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)