NCurses Video-Tutorial

Die folgenden Videos stellen eine Schritt-für-Schritt Einführung in die Programmierung mit NCurses dar:

TeilTitelVideoProgrammiermaterialien
#1NCursesPROG2-NCurses-1YT 
#2NCurses InstallationPROG2-NCurses-2YTmain.cpp
CMakeLists.txt
#3NCurses BasicsPROG2-NCurses-3YT 
#4More NCurses BasicsPROG2-NCurses-4YT 
#5NCurses GraphicsPROG2-NCurses-5YT 
#6NCurses AnimationsPROG2-NCurses-6YT 
#7NCurses FrameworkPROG2-NCurses-7YTsvn export https://svn.code.sf.net/p/ascii-gfx/code/ ascii-gfx
#8ASCII DASH (1)PROG2-NCurses-8YT 
#9ASCII DASH (2A)PROG2-NCurses-8YT 
#10ASCII DASH (2B)PROG2-NCurses-8YT 
#11ASCII DASH (3)PROG2-NCurses-8YT 
#12ASCII DASH (4)PROG2-NCurses-8YT 
#13ASCII DASH (5)PROG2-NCurses-8YT 
#14ASCII DASH (6)PROG2-NCurses-8YT 
#15ASCII DASH (7)PROG2-NCurses-8YT 
#16ASCII DASH Demo #1PROG2-NCurses-8YTA remake of the famous BOULDER DASH game with the NCurses framework
#17ASCII DASH Demo #2BD-IYTASCII 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 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

Further Reading

Options: