#1 21. Januar 2009 Konsole einzelnes Zeichen farbig also habe folgendes kleines Programm ^^ Code: #include <cstdlib> #include <iostream> #include <string> using namespace std; int show_field(); int give_top(); int ask_field(); int check_win(); int check_free(int); int akt_player = 100; int winner = -10; char fields[3][3] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'} }; std::string spieler1("-"); std::string spieler2("-"); int main(int argc, char *argv[]) { //////////Programm start © by Smoki ////////// printf("Test"); give_top(); do { if(spieler1 == "-") { cout << "Bitte gib den Namen fuer Spieler 1 ein: "; cin >> spieler1; } else { cout << "Kein zulaessiger Name(Zu kurz?).Neue Eingabe :"; cin >> spieler1; } } while(spieler1.size() < 3); system("CLS"); give_top(); do { if(spieler2 == "-") { cout << "Bitte gib den Namen fuer Spieler 2 ein: "; cin >> spieler2; } else { cout << "Kein zulaessiger Name(Zu kurz?).Neue Eingabe :"; cin >> spieler2; } } while(spieler2.size() < 3); system("CLS"); give_top(); show_field(); do { ask_field(); system("CLS"); give_top(); show_field(); } while(check_win() == false); if(winner == 1) { cout << "Herrzlichen Glueckwunsch " << spieler1 << ".Du hast gewonnen" << endl ; } else { cout << "Herrzlichen Glueckwunsch " << spieler2 << ".Du hast gewonnen" << endl ; } cout << endl; system("PAUSE"); return EXIT_SUCCESS; } int show_field() { cout << "+---+---+---+" << endl; cout << "| " << fields[0][0] <<" | " << fields[0][1] <<" | " << fields[0][2] <<" |" << endl; cout << "+---+---+---+" << endl; cout << "| " << fields[1][0] <<" | " << fields[1][1] <<" | " << fields[1][2] <<" |" << endl; cout << "+---+---+---+" << endl; cout << "| " << fields[2][0] <<" | " << fields[2][1] <<" | " << fields[2][2] <<" |" << endl; cout << "+---+---+---+" << endl; cout << endl; } int give_top() { cout << "*******************************************" << endl; cout << "**** TicTacToe Master 0.1 beta by Smoki****" << endl; cout << "*******************************************" << endl; cout << endl; cout << endl; } int ask_field() { int modulo; int eingabe; modulo = akt_player%2; do { if(modulo == 0) { cout << spieler1 << ".Bitte waehle deine Position!" << endl; } else { cout << spieler2 << ".Bitte waehle deine Position!" << endl; } cin >> eingabe; if(check_free(eingabe) == false) { cout << "Feld nicht mehr frei. Bitte neu waehlen!" << endl; } } while(eingabe < 0 || eingabe > 9 || check_free(eingabe) == false); switch(eingabe) { case 1: if(modulo == 0) { fields[0][0] = 'X'; } else { fields[0][0] = 'O'; }; break; case 2: if(modulo == 0) { fields[0][1] = 'X'; } else { fields[0][1] = 'O'; }; break; case 3: if(modulo == 0) { fields[0][2] = 'X'; } else { fields[0][2] = 'O'; }; break; case 4: if(modulo == 0) { fields[1][0] = 'X'; } else { fields[1][0] = 'O'; }; break; case 5: if(modulo == 0) { fields[1][1] = 'X'; } else { fields[1][1] = 'O'; }; break; case 6: if(modulo == 0) { fields[1][2] = 'X'; } else { fields[1][2] = 'O'; }; break; case 7: if(modulo == 0) { fields[2][0] = 'X'; } else { fields[2][0] = 'O'; }; break; case 8: if(modulo == 0) { fields[2][1] = 'X'; } else { fields[2][1] = 'O'; }; break; case 9: if(modulo == 0) { fields[2][2] = 'X'; } else { fields[2][2] = 'O'; }; break; } akt_player = akt_player -1; } int check_win(){ if( (fields[0][0] == 'X' && fields[0][1] == 'X' && fields[0][2] == 'X') || (fields[1][0] == 'X' && fields[1][1] == 'X' && fields[1][2] == 'X') || (fields[2][0] == 'X' && fields[2][1] == 'X' && fields[2][2] == 'X') || (fields[0][0] == 'X' && fields[1][0] == 'X' && fields[2][0] == 'X') || (fields[0][1] == 'X' && fields[1][1] == 'X' && fields[2][1] == 'X') || (fields[0][2] == 'X' && fields[1][2] == 'X' && fields[2][2] == 'X') || (fields[0][0] == 'X' && fields[1][1] == 'X' && fields[2][2] == 'X') || (fields[2][0] == 'X' && fields[1][1] == 'X' && fields[0][2] == 'X') ) { winner = 1; } if( (fields[0][0] == 'O' && fields[0][1] == 'O' && fields[0][2] == 'O') || (fields[1][0] == 'O' && fields[1][1] == 'O' && fields[1][2] == 'O') || (fields[2][0] == 'O' && fields[2][1] == 'O' && fields[2][2] == 'O') || (fields[0][0] == 'O' && fields[1][0] == 'O' && fields[2][0] == 'O') || (fields[0][1] == 'O' && fields[1][1] == 'O' && fields[2][1] == 'O') || (fields[0][2] == 'O' && fields[1][2] == 'O' && fields[2][2] == 'O') || (fields[0][0] == 'O' && fields[1][1] == 'O' && fields[2][2] == 'O') || (fields[2][0] == 'O' && fields[1][1] == 'O' && fields[0][2] == 'O') ) { winner = 2; } if(winner == 1 || winner == 2) { return true; } else { return false; } } int check_free(int eingabe){ switch(eingabe) { case 1: if(fields[0][0] == '1') {return true; } else { return false; }; break; case 2: if(fields[0][1] == '2') {return true; } else { return false; }; break; case 3: if(fields[0][2] == '3') {return true; } else { return false; }; break; case 4: if(fields[1][0] == '4') {return true; } else { return false; }; break; case 5: if(fields[1][1] == '5') {return true; } else { return false; }; break; case 6: if(fields[1][2] == '6') {return true; } else { return false; }; break; case 7: if(fields[2][0] == '7') {return true; } else { return false; }; break; case 8: if(fields[2][1] == '8') {return true; } else { return false; }; break; case 9: if(fields[2][2] == '9') {return true; } else { return false; }; break; } } Ich will nun das die vom user eingegebenen Zeichen ( X oder O ) nun in ROT drinne stehen... ist das möglich? habe bisher nur gefunden das die ganze Konsole sich färbt mittels SYSTEM befehl..... greets + Multi-Zitat Zitieren
#2 21. Januar 2009 AW: Konsole einzelnes Zeichen farbig wenn ichs richtig verstanden habe was du meinst ... das funkt über die conio.h: how to make colors | DaniWeb + Multi-Zitat Zitieren
#3 21. Januar 2009 AW: Konsole einzelnes Zeichen farbig weis ja nicht, aber ich hab mal conio.h eingebunden und folgendes probiert : Code: using namespace std; int show_field(); int give_top(); int ask_field(); int check_win(); int check_free(int); int akt_player = 100; int winner = -10; char fields[3][3] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'} }; std::string spieler1("-"); std::string spieler2("-"); int main(int argc, char *argv[]) { //////////Programm start © by Smoki ////////// textcolor(12); printf("Test"); .............. Dann bekomm ich halt Compiler error das er textcolor() nich kennt. // 27 H:\Cpp\Projekte\TicTacToe\main.cpp `textcolor' undeclared (first use this function) // + Multi-Zitat Zitieren
#4 21. Januar 2009 AW: Konsole einzelnes Zeichen farbig was du noch versuchen könntest wäre die farbe jedesmal pro spieler umzuschalten mittels system("COLOR XY"); x= Hintergrund y= Vordergrund Werte: 0= Schwarz 1= Dunkelblau 2= Dunkelgrün 3= Blaugrün 4= Dunkelrot 5= Lila 6= Ocker 7= Hellgrau 8= Dunkelgrau 9= Blau A= Grün B= Zyan C= Rot D= Magenta E= Gelb F= Weiß + Multi-Zitat Zitieren
#5 22. Januar 2009 AW: Konsole einzelnes Zeichen farbig Hey, falls du das Programm für Windows schreibst kannst du auch das hier benutzen: SetConsoleTextAttribute function (Windows) Windows.h includieren und dann z.B.: Code: HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED); funktioniert bei mir einwandfrei... aber wie gesagt nur Windows //Edit: Du kannst die Farben so auch kombinieren z.B. für ein knalliges Rot: SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY); oder auch mehrere Farben miteinander MfG Moses + Multi-Zitat Zitieren
#6 22. Januar 2009 AW: Konsole einzelnes Zeichen farbig und falls du für linux schreiben willst, solltest du dir ncurses anschauen Ncurses – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher + Multi-Zitat Zitieren
#7 22. Januar 2009 AW: Konsole einzelnes Zeichen farbig okay, danke erstmal soweit ich werds damit mal versuchen =) dank euch + Multi-Zitat Zitieren