4 gewinnt



  • DerDa schrieb:

    was ich brauche ist nicht die vorgekaute funktuion, aber die lösung mit dem wert "platzhlter1* und wie ich prüfe ob dieser gerade oder ungerade ist.

    Prüfen, ob es eine gerade oder ungerade Zahl ist kannst du mit dem Modula.
    Beispiel:

    if(8 % 2 == 0)
        std::cout << "gerade" << std::endl;
    else
        std::cout << "ungerade" << std::endl;
    


  • nun habe ich folgende fehler meldung:

    [linker error] undefined reference to `eingabe()'
    
    char xo = 'X';
    void spieler(int (zahl), char *xo);
    

    meine neue variable und die anmeldung der funktion

    spieler(zahl, &xo);

    so rufe ich die funktion auf

    void hinzufuegen(int wahl, char fach[5][6]) 
    {
       for(int i = 5; i >= 0; --i) 
       {
          if(fach[i][wahl - 1] == ' ') 
          {
             fach[i][wahl - 1] = xo;
             break;
          }
       }
    }
    

    so soll das x oder das o ausgegeben werden gut möglich das der feler hier is)

    void spieler(int zahl, char *xo)
    {
       if(zahl % 2 == 0)
       {
          *xo = 'X';
       }   
       else
       {
          *xo = 'O';
       }   
    }
    

    die neue funktion

    mehr worte brauchts glaub ich nicht.



    1. In deiner Funktion würde ich ansatt Zeiger, Referenzen nehmen.
    2. warum der Linkererror kommt, weiß ich nicht. Aus deinem geposteten Code kann man dies nicht erahnen
    3. in hinzufuegen() ist oe unbekannt, du musst es als 3. Argument übergeben
    4. vielleicht eher so lösen:
    // in hinzufuegen()
    // ..
    fach[i][wahl - 1] = choosePlayer(count);
    // ..
    // erhöhen irgendwo, wo es passt
    ++count;
    // ..
    // choosePlayer() dann so implementieren:
    char choosePlayer(int count) {
        return count % 2 == 0 ? 'X' : 'O'; // alles in einer Zeile zurückgeben
    }
    


  • fach[i][wahl - 1] = choosePlayer(count);
    

    so hab ichs auch est proiert ging dann aber mit der selben meldung nicht...
    mal schaun obs so geht



  • 2 fehler

    void hinzufuegen(int wahl, char fach[5][6]) 
    {
       for(int i = 5; i >= 0; --i) 
       {
          if(fach[i][wahl - 1] == ' ') 
          {
             [b]fach[i][wahl - 1] = spieler(zahl);[/b]
             break;
          }
       }
    }
    

    einmal hier

    void spieler(int zahl)
    {
       [b]return zahl % 2 == 0 ? 'X' : 'O';[/b]
    }
    

    und einmal hier



  • Natürlich musst du die Funktionsnamen noch anpassen. Ich dachte, das wäre klar. 🙄 Wie es scheint, läuft das nun auch. 🕶



  • sind doch angezeigt. wo lieg das problem?

    nmen sind so wie sei sein sollten...denke ich



  • DerDa schrieb:

    sind doch angezeigt. wo lieg das problem?

    nmen sind so wie sei sein sollten...denke ich

    CHAR^^ ich trottel is klar muss ne char funktion sein

    aber wenn ich nun in beiden orten von void auch char wechsle gehts nciht



  • gib dir keine mühe...

    ich bin zu dumm^^

    hab der funktion eingbe ncoh int zahl mitgegeben.
    nun funktionierts.

    DANKE DANKE DANKE

    weiss deine mühe echt zu schätzen.

    dass solte bis morgen mal reichen (vorstellungsgespräch)

    ich verde später noch eine weitere prüfungn einbauen damit das programm merkt wenn einer gewonnen htt und die ausgiebt...

    wär toll wenn du da auch mal was zu sagen würdest..



  • DerDa schrieb:

    dass solte bis morgen mal reichen (vorstellungsgespräch)

    Willst du das "Spiel" zu einem Vorstellungsgespräch etwa mitnehmen??

    ich verde später noch eine weitere prüfungn einbauen damit das programm merkt wenn einer gewonnen htt und die ausgiebt...

    wär toll wenn du da auch mal was zu sagen würdest..

    Du musst das halt checken lassen, mathematisch. Ne Suchmaschine könnt dir da helfen, du schaust anderen Sourcecode an oder du versuchst es on your own.


Anmelden zum Antworten