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.


Anmelden zum Antworten