Frage

Ein einfacheres Leben

ich zu C kehre zurück, um meine Programmierlappens neu zu beleben. Das letzte Mal, ich habe mich gelernt, zu programmieren, war auf dem College mit Turbo C auf MS-DOS arbeiten. Einfache ASCII-Animationen wurde eine Obsession, wenn ich Borland freundliche <conio.h> ein gehören entfernt gefunden. Viel Spaß mit den gotoxy und textcolor Funktionen hatte und es dauerte nicht lange, bevor ich Spiele wie Schlange und Pong zu schreiben. Es war ein sehr lohnender Weg, eine Sprache, und jedes Spiel schob mich weiter zu lernen, wie ich ehrgeizigere bekam.

ncurses

würde Ich mag mit ähnlichen Projekten Spielart starten. Heute aber, ich bin auf einem Mac mit einer staubigen Linux-Maschine in der Ecke. Ich konnte meinen geliebten Turbo C in dosbox (eine allgegenwärtigen genug Plattform) starten, aber ich mag C so lernen, dass ich etwas entwickeln kann, die natürlich auf jedem BSD oder Unix-Plattform kompiliert. Ich habe gesagt, dass ncurses ist der richtige Weg, aber der GNU-Website hat sich über meinen Kopf weitgehend verschwunden. Zurück in den Tag hatte ich meine freundliche textmode Funktion und ich war weg aprint Ausdruck von pong. ncurses scheint viel mächtiger.

zack

Es muß viele Menschen, die in dieser Situation sind. Ich suche nach einer entsprechenden Tutorial oder Ressource, die mir helfen ringe mit dem, was ncurses ist und wie es funktioniert. Irgendwelche Tipps oder ähnliche Geschichten würden auch von großen Interesse sein!

War es hilfreich?

Lösung

Yup, ncurses ist die Bibliothek, die Sie suchen. Als Beispiel ist hier der (n) Flüche Äquivalent gotoxy:

  

NAME

     

bewegen, wmove - move Flüche Fenster Cursor

     

SYNTAX

   #include <curses.h>

   int move(int y, int x);
   int wmove(WINDOW *win, int y, int x);
     

Beschreibung

     

Diese Routinen bewegen Sie den Cursor mit dem Fenster zugeordnet   Zeile y und Spalte x. Diese Routine nicht den physischen Cursor bewegen   des Terminals bis refresh aufgerufen. Die angegebene Position ist   relativ zu der oberen linken Ecke des Fensters, das ist (0,0).

Nachtrag:

In Ihrem Kommentar, den Sie fragen über Flüche Fenster - Ich glaube nicht, dass ich wirklich auf verbessern, was die ncurses Manpage sagt dazu, also werde ich es nur zitieren:

  

Die ncurses Bibliothek erlaubt   Manipulation von Datenstrukturen,   Fenster genannt, die gedacht werden kann   die als zweidimensionale Arrays von   Zeichen repräsentieren ganz oder teilweise   ein CRT-Bildschirm. Ein Standard-Fenster aufgerufen   stdscr, die die Größe der IS   Terminalbildschirm, zugeführt wird. Andere   kann mit newwin erstellt werden.

     

Beachten Sie, dass nicht verarbeitet Flüche   überlappende Fenster, ist das geschehen durch   die Platte (3CURSES) Bibliothek. Diese   entweder bedeutet, dass Sie stdscr verwenden können   oder teilen den Bildschirm in gekachelten   Fenster und schon gar nicht mit stdscr.   Mischen der beiden führt in   unvorhersehbar, und unerwünschte,   Effekte.

     

Fenster werden durch Variablen bezeichnet   als FENSTER * erklärt. Diese Daten   Strukturen manipuliert mit   Routinen hier und an anderer Stelle beschrieben   in den ncurses Handbuchseiten. Unter   diejenigen, die grundlegendsten Routinen   bewegen und addch. Allgemeiner   Versionen dieser Routinen sind   mit Namen enthalten die mit w beginnen,   dem Benutzer ermöglicht, ein Fenster zu spezifizieren.   Die Routinen beginnen nicht mit w   beeinflussen stdscr.

     

Nach Routinen zu manipulieren ein   Fenster wird refresh genannt, zu sagen   Flüche des Benutzers CRT-Bildschirm zu machen   aussehen stdscr. Die Zeichen in   ein Fenster ist tatsächlich vom Typ CHTYPE,   (Zeichen und Attributdaten), so dass   weitere Informationen über den Charakter   kann auch mit jedem gespeichert werden   Charakter.

So in der Zusammenfassung, können Sie sicher die gesamte Fenster Sache ignorieren und nur das stdscr Fenster verwenden.

Andere Tipps

Nun, auf UNIX-ähnlichen Systemen wie BSD und Linux Sie wollen auf jeden Fall ncurses verwenden, da die Terminalemulatoren Ihr Leben wirklich unglücklich machen, wenn Sie dies nicht tun.

Sie sollten wahrscheinlich selbst einen einfachen Wrapper schreiben, die Funktionalität enthalten, die Sie benötigen und implementieren es anders für verschiedene Betriebssysteme. Unter Windows gibt es ein paar Konsolenfunktionen Sie können, so dass ein Teil sein wird, nicht zu hart verwenden.

Hier ist ein kleines Programm, um Ihnen den Einstieg.

#include <curses.h>

int main(void) {
  int ch;

  /* The whole program needs error-checking */
  initscr();
  noecho();
  cbreak();
  printw("Hit Ctrl+C to exit ...\n\n");
  for (;;) {
    ch = getch();
    printw("Value of char: %d (%02x)\n", ch, ch);
  }
  endwin();
  return 0;
}

Denken Sie daran, den Linker zu sagen, die libcurses Bibliothek hinzuzufügen.

gcc ... -lcurses

Es gibt eine Bibliothek, die Turbo C wie Konsole IO Linux: TurboC Auch bezogen werden: conio für DEVC ++

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top