NCurses Video-Tutorial
Die folgenden Videos stellen eine Schritt-für-Schritt Einführung in die Programmierung mit NCurses dar:
Teil | Titel | Video | Programmiermaterialien | |
---|---|---|---|---|
#1 | NCurses | YT | ||
#2 | NCurses Installation | YT | main.cpp CMakeLists.txt | |
#3 | NCurses Basics | YT | ||
#4 | More NCurses Basics | YT | ||
#5 | NCurses Graphics | YT | ||
#6 | NCurses Animations | YT | ||
#7 | NCurses Framework | YT | svn export https://svn.code.sf.net/p/ascii-gfx/code/ ascii-gfx | |
#8 | ASCII DASH (1) | YT | ||
#9 | ASCII DASH (2A) | YT | ||
#10 | ASCII DASH (2B) | YT | ||
#11 | ASCII DASH (3) | YT | ||
#12 | ASCII DASH (4) | YT | ||
#13 | ASCII DASH (5) | YT | ||
#14 | ASCII DASH (6) | YT | ||
#15 | ASCII DASH (7) | YT | ||
#16 | ASCII DASH Demo #1 | YT | A remake of the famous BOULDER DASH game with the NCurses framework | |
#17 | ASCII DASH Demo #2 | YT | ASCII DASH with original BOULDER DASH I levels |
Anmerkungen und Korrekturen:
- Die Videos enthalten ein paar Verwechslungen von LINES und COLS → im Zweifelsfall ist der Source-Code entscheidend.
- Der Bresenham Algorithmus geht nicht auf die 70er Jahre zurück, sondern wurde sogar schon deutlich vorher im Jahre 1962 von Jack Bresenham entwickelt.
- Der im Video #7 dargestellte Scan-Line-Fill Algorithmus dient nur der Illustration, in der Praxis kann man auch den sog. Flood-Fill Algorithmus verwenden.
NCurses Installation
Zur Installation von NCurses bzw. SDL siehe hier.
NCurses Beispiel-Code
Das im Video demonstrierte NCurses Framework steht in SVN zur Verfügung:
svn export https://svn.code.sf.net/p/ascii-gfx/code/ ascii-gfx
NCurses Tutorials:
- NCurses HowTo
- NCurses Wiki Book
- ASCII Games with NCurses
NCurses Hints:
- Ein NCurses Programm ist immer mit Ctrl-C abbrechbar.
- Eine NCurses Animation kann mit Ctrl-S angehalten und mit Ctrl-Q wieder aufgenommen werden.
- NCurses versteht den Standard ASCII Code
- NCurses versteht keine UTF8 Zeichen (sog. wide characters)
- NCurses versteht daher keine Umlaute
- Anstelle dessen kann man die Umlaute durch ae, oe, ue etc. ersetzen
- oder den ALTCHARSET von NCurses verwenden, z.B. für ein ö:
addch(246 | A_ALTCHARSET);
- Wenn die Umlaute nicht korrekt dargestellt werden, muss das “Character Encoding” des Terminals auf “Western ISO-8859–1” gestellt werden.
- Man könnte alternativ die ncursesw Bibliothek verwenden, die UTF8 unterstützt, dies ist aber nicht empfohlen:
sudo apt-get install libncursesw5-dev
setlocale(LC_All, "");
addwstr(L"\uc3b6"); // wide character ö
gcc main.c $(ncursesw5-config --cflags --libs) -o main