enum?



  • liebe mituser!!!
    ich bin ein blutiger programmieranfänger... und muss ein tictactoe spiel in c++ schreiben... dafür habe ich eine kurze vorgabe mit der ich leider reichlich wenig anfangen kann 😞 :

    enum BoardCell
    {
        NO_PIECE,
        PLAYER1,
        PLAYER2
    }
    
    BoardCell board[3][3]
    
    dann hab ich einfach mal drauflos geschrieben...nach dem motto "das kommt ja auch noch da rein":
    
    int main()
    {
            int a[3][3];//zeile ,spalte
            int i;
            int j;
            for (i=0;i<3;i++)
            {
                    for(j=0;j<3;j++)
                    a[i][j]=0;
                    cout<< a[i][j];
    
            }
           int zahl,zeile,spalte;
    
            do
            {
                cout<<"Willkommen bei meinem TTT-Spiel"<<endl;
                cout<<"Bitte tippen Sie auf den Nummernblock die zu markierenden Stellen im TTT.FEld"<<endl;
                cin>> zahl;
                    switch(zahl)
                    {
                    case 1:
                    a[2][0]=1;break;
                    case 2:
                    a[2][1]=1;break;
                    case 3:
                    a[2][2]=1;break;
                    case 4:
                    a[1][0]=1;break;
                    case 5:
                    a[1][1]=1;break;
                    case 6:
                    a[1][2]=1;break;
                    case 7:
                    a[0][0]=1;break;
                    case 8:
                    a[0][1]=1;break;
                    case 9:
                    a[0][2]=1;break;
                 /*   case 10:
                    a[2][0]=2;break;
                    case 11:
                    a[2][1]=2;break;
                    case 12:
                    a[2][2]=2;break;
                    case 13:
                    a[1][0]=2;break;
                    case 14:
                    a[1][1]=2;break;
                    case 15:
                    a[1][2]=2;break;
                    case 16:
                    a[0][0]=2;break;
                    case 17:
                    a[0][1]=2;break;
                    case 18:
                    a[0][2]=2;break; */
                    }
                cout <<" Aktueller ttt-feld stand"<<endl;
                cout <<"--------"<<endl;
                cout <<"|"<<a[0][0]<<"|"<<a[0][1]<<"|"<<a[0][2]<<"|"<<endl;
                cout <<"|"<<a[1][0]<<"|"<<a[1][1]<<"|"<<a[1][2]<<"|"<<endl;
                cout <<"|"<<a[2][0]<<"|"<<a[2][1]<<"|"<<a[2][2]<<"|"<<endl;
                cout <<"--------";
    
            }
            while(a[0][0]!=0||a[0][1]!=0||a[0][2]!=0||
                  a[1][0]!=0||a[1][1]!=0||a[1][2]!=0||
                  a[2][0]!=0||a[2][1]!=0||a[2][2]!=0);
    
                  for (zahl=2;zahl<=2;i++)
                  {
                      cout<<"Bitte Player1 um Eingabe!"<<endl;
                  }
                  for (zahl=1;zahl<=1;i++)
                  {
                      cout<<"Bitte Player2 um Eingabe!"<<endl;
                  }
    
                   switch (...??)
                    {
                     case 1: a[0][0]&& a[0][1]&& a[0][2];break;
                     case 2: a[1][0]&& a[1][1]&& a[1][2];break;
                     case 3: a[2][0]&& a[2][1]&& a[2][2];break;
                     case 4: a[0][0]&& a[1][0]&& a[2][0];break;
                     case 5: a[0][1]&& a[1][1]&& a[2][1];break;
                     case 6: a[0][2]&& a[1][2]&& a[2][2];break;
                     case 7: a[0][0]&& a[1][1]&& a[2][2];break;
                     case 8: a[0][2]&& a[1][1]&& a[2][0];break;
                    }
                        {
                        cout<<"Sie haben gewonnen!"<<endl;
                        }
    
            return 0;
    }
    ...
    

    hätte evtl jemand eine idee was man da mit dieser enumeration anstellen muss/könnte/soll...
    danke,syl

    /edit: Bitte Code-Tags verwenden



  • enum BoardCell heißt das eine Variable vom Typ BoardCell nur die Werte annehmen kann, die in der geschweiften Klammer stehen. Bei dir kann also jede Zelle nur leer sein (NO_PIECE), von Player1 besetzt sein (PLAYER1) oder von Player2 besetzt sein (PLAYER2). Dein Spilefeld besteht aus 3x3 Zellen dieser Art (board[3][3] ist das Feld und BoardCell der Datentyp jedes Elements in diesem Feld).
    Du kannst dann für jedes Element aus deinem Feld eine Abfrage machen wie z.B.:

    BoardCell board[3][3]=a;
    if(a[i][j]==?)

    und ? kann dann nur entweder NO_PIECE, PLAYER1 oder PLAYER2 sein.

    Ich hoffe ich konnte dir weiterhelfen. Bye !

    liefert true wenn



  • vielen dank!!! das hilft mir erheblich weiter... bin leider noch nicht der c++ könner... deshalb blick ich manchmal bei den einfachsten sachen nicht so durch... danke!!!



  • Hm, habt Ihr alle die gleichen Aufgaben bekommen?
    http://www.c-plusplus.net/forum/viewtopic.php?p=401024#401024



  • nman schrieb:

    Hm, habt Ihr alle die gleichen Aufgaben bekommen?
    http://www.c-plusplus.net/forum/viewtopic.php?p=401024#401024

    lol 😮 haben sie bestimmt


Anmelden zum Antworten