Längere Variable
-
int Zeile, und dann int i
statt zeile musst'e i nehmen, dann geht's!
Ivch wusste nicht, dass ich auch [3][3] nehmen kann
-
Statt i Zeile LOL
-
Autsch... liegt daran daß ich zuerst mit i geschrieben habe und dann wegen der lesbarkeit auf zeile geändert habe... Da übersieht man schnell was, naja, hast es ja gefunden
ich ändere das mal...
-
char Spielfeld[1][1] = { "O" }; char Spielfeld[1][2] = { "x" }; for(int zeile=0;zeile<=2;zeile++) { cout << "-------------" << endl; cout << "| " << Spielfeld[zeile][0] << " | " << Spielfeld[zeile][1] << " | " << Spielfeld[zeile][2] << " |" << endl; } cout << "-------------" << endl;
Nur mal als bsp. ...
Wieso gibt das ein Fehler?
-
bei der wertzuweisung für die array- elemente muß es heißen
char blablabla[x][y] = '0';
und entsprechend.
soweit ich weiß jedenfalls...
-
Japp bei einem einzelnem Element aus einem Chararray muss der Wert zwischen einzelnen Hochkommata stehen ('), ein String dagegen steht zwischen doppelten Hochkommata (")
-
#include <iostream.h> #include <conio.h> #define FARBE ( system("color 1f") ) #define LINIE ( cout << "-------------" << endl ) #define CLS ( system("cls") ) #define HEADLINE ( cout <<" ***** Tic-Tac-Toe ***** \n\n" ) using namespace std; //------------------------------------------------------------------------------ // Globale Variablen char Spielfeld[3][3]; int Eingabe; //------------------------------------------------------------------------------ // Prototypen int BeispielFeld(void); int SpielFeld(void); //------------------------------------------------------------------------------ int main() { while (true) { CLS; FARBE; HEADLINE; BeispielFeld(); SpielFeld(); cin >> Eingabe; switch (Eingabe) { case 1: Spielfeld[2][1] = 'X'; break; case 2: Spielfeld[2][2] = 'X'; break; case 3: Spielfeld[2][3] = 'X'; break; case 4: Spielfeld[1][1] = 'X'; break; case 5: Spielfeld[1][2] = 'X'; break; case 6: Spielfeld[1][3] = 'X'; break; case 7: Spielfeld[0][1] = 'X'; break; case 8: Spielfeld[0][2] = 'X'; break; case 9: Spielfeld[0][3] = 'X'; break; } } // End While system("pause"); return 0; } //------------------------------------------------------------------------------ // Funktion: Beispielfeld // Bewirkt: Anzeigen eines Beisp. Feld, was die Tastenbelegung anzeigt int BeispielFeld() { cout <<"Tastenbelegung: \n"; cout <<"------------- \n"; cout <<"| 7 | 8 | 9 | \n"; cout <<"------------- \n"; cout <<"| 4 | 5 | 6 | \n"; cout <<"------------- \n"; cout <<"| 1 | 2 | 3 | \n"; cout <<"------------- \n\n"; return 0; } // Funktion: SpielFeld // Bewirkt: Anzeige des Spielfeld, mit den Array's int SpielFeld() { for(int zeile = 0; zeile <= 2; zeile++) { LINIE; cout << "| " << Spielfeld[zeile][1] << " | " << Spielfeld[zeile][2] << " | " << Spielfeld[zeile][3] << " | " << endl; } LINIE;; return 0; }
Soweit bin ich jetz...
Jetz will ich noch den Zug des PC's Programmieren.
Sowas wird doch mit Zufalsszahlen (Zwischen 1 u. 9 ) gemacht, oder?
Wie krieg ich es jetz hin, das der PC mein Feld nicht überdeckt? Soll also nur freie Felder wählen...
-
Das er nicht überdschreibt reicht ein einfaches if zielfeld = 'X' und zu den Arrays! Wenn Du ein Array anlegst mit [3][3] sprichst Du die elemente selbst mit [0 bis 2][0 bis 2] an. Also ein Array der Größe N geht immer von 0 bis N-1 (eins nicht "l"
-
Entspricht der Code eigentlich dem Standart? Geht nur bei Borland C++ Builder... DJGPP kompiliert ihn net!
-
Nein, natürlich nicht.
<iostream.h> muss <iostream> heißen und dafür steht alles im Namensraum std.
<conio.h> ist eine Borland-spezifische Bibliothek, die Teilweise auch bei andern Compiler beiliegt.