Schreiben Sie in C ein Modul, mit dem man eine bestimmte Klasse von Brettspielen auf dem Bildschirm darstellen kann: Zwei Spieler setzen abwechselnd einen Stein ihrer Farbe auf eine noch freie Stelle in einer quadratischen Matrix. Es gibt also nur zwei Sorten von Spielsteinen und eine relativ übersichtliche Menge von Spielfeldern. Typische Vertreter solcher Spiele sind z.B. Tic Tac Toe, Reversi und Gobang. Die Größe des Brettes sollte variabel etwa zwischen 2x2 und 11x11 Feldern konfigurierbar sein. Irgendwo auf dem Bildschirm sollen kurze Statusmeldungen ("Weiß am Zuge" etc.) angezeigt werden können.
Implementieren Sie die folgenden Funktionen:
gb_reset(n) | leeres Brett der Größe nxn anzeigen |
gb_goto(x,y) | Cursor auf bestimmtes Feld positionieren |
gb_set(x,y,col) | Feld mit Stein der Sorte col besetzen, |
col = 0,1,2 bedeutet leeres Feld / "schwarz" / "weiß" | |
gb_status(s) | Text s als Statusmeldung anzeigen |
Ergänzen Sie das Anzeigemodul zu einem Programm, das Eingaben von der Tastatur bearbeitet, sodaß Sie die verschiedenen Funktionen testen können. Das Programm soll auf Tastendrücke sofort reagieren, ohne auf die Return-Taste zu warten.
Die wichtigsten Funktionen für die Benutzung von curses sind:
initscr | Initialisierung |
noecho, cbreak, nonl | Tasten ohne Echo und einzeln bearbeiten |
endwin | Aufräumarbeiten, vor Termination unbedingt aufzurufen |
(für Abbruch per Break-Taste an Signalbearbeitung denken)! |