Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Nötige Header einbinden #include <iostream> #include <windows.h> int main (void) // Die Main Funktion, sollte jedem bekannt sein ;) { SetConsoleTitleW (L"Tic Tac Toe"); // Einen Konsolen Titel setzen, spätestens, // wenn ihr das Programm startet, werdet ihr wissen, // was es damit auf sich hat ;) char input = ' '; // Eine Variable, damit wir die Eingaben des // Benutzer's abfragen können while (input != 'q') // Solange der Benutzer nicht "q" eingibt, tue folgendes: { std::cin >> input; // Eingabe des Benutzer's abfragen std::cin.sync (); // Eingabe Buffer des Benutzer's leeren und synchronisieren // d.h. Alles, was eingegeben wurde wird wieder gelöscht // Dies ist notwendig, damit "cin" auch weiterhin so toll funktioniert ;) } return 0; // 0 zurückgeben / Programm beenden } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
void draw_field (void) // Die Funktion gibt nichts zurück, deshalb ist die Funktion vom Typ "void", // und da wir keine Parameter übergeben wollen, bekommt die Parameterliste auch ein "void" { system ("cls"); // Alles was man in der Konsole sehen kann -> löschen! // Ansonsten entsteht eine kilometerlange Liste von Spielfeldern... std::cout << std::endl << std::endl << std::endl // 3 leere Zeilen // Ich denke mal hier kann man nicht viel zu sagen... << " | | " << std::endl << " ---|---|---" << std::endl << " | | " << std::endl << " ---|---|---" << std::endl << " | | " << std::endl; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
char key_input (void) // Diese Funktion ist vom Typ "char", // weil wir die input Variable zurückgeben wollen { char input = ' '; // Variable für den Eingabe Buffer std::cin >> input; // Eingabe abfragen switch (input) // Abfragen, was sich in "input" befindet { case '1': break; // Wenn "1" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case '2': break; // Wenn "2" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case '3': break; // Wenn "3" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case '4': break; // Wenn "4" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case '5': break; // Wenn "5" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case '6': break; // Wenn "6" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case '7': break; // Wenn "7" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case '8': break; // Wenn "8" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case '9': break; // Wenn "9" eingegeben wurde, tue dies: // (noch nicht implementiert, folgt im nächsten Teil) case 'q': // Wenn q gedrückt wurde, nichts tun, außer aus der Switch Abfrage springen ohne // das zu tun, was in dem "default:" Fall ausgeführt wird. break; default: { std::cin.sync (); // Nochmal leeren, Ihr könnte jetzt mal testen, was passiert, wenn Ihr // diese Zeile auslasst ;) std::cout << std::endl << "Falsche Eingabe!"; // "Falsche Eingabe!" ausgeben std::cin.get (); // Darauf warten, dass "Enter" gedrückt wurde break; // Und aus der Abfrage springen. } } return input; // "input" Variable zurückgeben, damit wir in der // Main aus der While Schleife springen können, falls "q" gedrückt wurde } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
int main (void) { SetConsoleTitleW (L"Tic Tac Toe"); // Sollte jetzt klar sein char input = ' '; // Das auch while (input != 'q') // Das auch { draw_field (); // Die Feld zeichen Funktion aufrufen // Danach wird eine kleine Beschreibung ausgegeben: std::cout << std::endl << std::endl << "Geben Sie eine Zahl zwischen 1 und 9 ein, um ein Feld auszuwählen" << std::endl << "oder geben Sie \"q\" ein, um das Programm zu beenden: "; input = key_input (); // Tastaturabfrage und den zurückgelieferten Wert in der "input" // Variable der Main Funktion speichern, damit wir, in dem Falle, dass // "q" gedrückt wurde das Programm beenden können. Man beachte die While Schleife... std::cin.sync (); // Sollte klar sein ;) } return 0; // Das auch =) } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
#include <iostream> #include <windows.h> void draw_field (void) { system ("cls"); std::cout << std::endl << std::endl << std::endl << " | | " << std::endl << " ---|---|---" << std::endl << " | | " << std::endl << " ---|---|---" << std::endl << " | | " << std::endl; } char key_input (void) { char input = ' '; std::cin >> input; switch (input) { case '1': break; case '2': break; case '3': break; case '4': break; case '5': break; case '6': break; case '7': break; case '8': break; case '9': break; case 'q': break; default: { std::cin.sync (); std::cout << std::endl << "Falsche Eingabe!"; std::cin.get (); break; } } return input; } int main (void) { SetConsoleTitleW (L"Tic Tac Toe"); char input = ' '; while (input != 'q') { draw_field (); std::cout << std::endl << std::endl << "Geben Sie eine Zahl zwischen 1 und 9 ein, um ein Feld auszuwählen" << std::endl << "oder geben Sie \"q\" ein, um das Programm zu beenden: "; input = key_input (); std::cin.sync (); } return 0; } |
Zitat von »"goldfisch007"«
aber why schreibst du std:: ima vor cout etc??? reicht da nicht auch nen normales cout?
Werbeanzeige