==== Das Grundgerüst entsteht ==== \\ Da ich keinen Ansatz für die KI((Künstliche Intelligenz)) hatte, dafür umso mehr Ideen für die GUI((Graphical user Interface | Grafische benutzer Oberfläche)) und auch wusste dass ich diese mit [[gui:ncurses:start|NCurses]] umsetzen will, hies das für mich, dass ich auch genau damit anfange. ==connect4.hpp:== #define INIT \ initscr(); \ start_color(); \ cbreak(); \ noecho(); \ nonl(); \ intrflush(stdscr, FALSE); \ keypad(stdscr, TRUE); \ nodelay(stdscr,FALSE); \ clear(); #define REW \ refresh();\ endwin();\ const int ROW = 6; const int COL = 7; const char PL1 = 'O'; const char PL2 = 'X'; const int WIN = 4; \\ \\ ==connect4.cpp:== #include #include #include "connect4.hpp" using namespace std; class Connect4 { private: public: }; int main(void) { Connect4 game; INIT REW return 0; } \\ \\ ==== Was bedeutet das bisher? ==== Jetzt ist [[gui:ncurses:start|NCurses]] bereit um damit zu arbeiten.\\ Und die Konstanten((während des Programmablaufs unveränderbare Variablen)), sprich die Vorgaben sind auch schon definiert. \\ \\ Gehen wir von Oben nach Unten vor.\\ Ich initialisiere alle [[gui:ncurses:start|NCurses]] Funktionen über ''#define INIT'', das macht die Funktion ''main()'' bzw. die Datei dazu übersichtlicher. \\ Am Programmende muss ''NCurses'' auch wieder ordentlich beendet werden. dies geschieht über ''#define REW''. \\ \\ ==== Die Initialisierung von NCurses ==== * [[gui:ncurses:lib:initscr|initscr()]] initialisiert das ncurses-Fenster. * [[gui:ncurses:lib:start_color|start_color()]] Aktiviert die Farben für die ''ncurses''-Konsole. * [[gui:ncurses:lib:cbreak|cbreak()]] deaktiviert das Puffern der Eingabe bis auf einige Tasten-Kombinationen * [[gui:ncurses:lib:noecho|noecho()]] deaktiviert das Ausgeben von Zeichen bei der Eingabe. * [[gui:ncurses:lib:nonl|nonl()]] interpretiert ''RETURN'' als ''CR'' * [[gui:ncurses:lib:intrflush|intrflush()]] deaktiviert das Löschen des Eingabe-Puffers bei Unterbrechungen. * [[gui:ncurses:lib:keypad|keypad()]] aktiviert das Zehnertastenfeld für ein Fenster. * [[gui:ncurses:lib:nodelay|nodelay()]] deaktiviert das warten auf eine Eingabe, zB. bei ''getch'' * [[gui:ncurses:lib:clear|clear()]] löscht den gesamten ''stdscr''. ==== Das Beenden von NCurses ==== * [[gui:ncurses:lib:refresh|refresh()]] läd das Hauptfenster neu um Veränderungen sichtbar zu machen. * [[gui:ncurses:lib:endwin|endwin()]] beendet den ''ncurses'' Modus. ==== Die Konstanten ==== Hierzu gibt es wohl nicht viel zu sagen. Es werden einfach die Vorgaben als feste Variable umgesetzt. Also die Anzahl der __Reihen__ und __Spalten__, sowie die __Spielsteine__ der Spieler. \\ Und natürlich die Anzahl der Steine die in einer Reihe sein müssen um zu gewinnen. const int ROW = 6; const int COL = 7; const char PL1 = 'O'; const char PL2 = 'X'; const int WIN = 4; \\ Somit ist das Grundgerüst erst einmal bereit um darauf aufzubauen.\\ \\ Hier gehts zum nächsten Schritt.\\ =>[[user:nouseforname:connect4:showstart|Startseite]].