Brauche Hilfe bei Anfängerspiel



  • bin ich überrascht das du nur so wenig mängel gefunden hast, ich dachte jetzt da wären mehr

    da sind auch mehr.

    das code-beispiel ist als leere pseudo-code huelse zu verstehen. es geht dabei nur um die struktur - den inhalt musst du selbst einfuegen, sonst lernst du nichts dabei - und laesst sich auf diverse andere deiner konstruktionen uebertragen.

    grundsaetzlich geht es darum, dass eine while-schleife bereits eine abbruchbedingung bietet. diese nutzt du nicht (while(true)) sondern springst einfach bei bestimmten (identischen) bedingungen raus - das ist haesslich und dumm.

    die zugrundeliegende idee war die, die schleife solange laufen zu lassen, bis alle muenzen weg sind und bei jedem schleifendurchlauf den am zug befindlichen spieler zu wechseln (xor-verknuepfung). nach terminieren der schleife weisst du dadurch, welcher spieler den letzten zug gemacht hat, ergo gewonnen hat.

    fuer zufallszahlen kannst du zb die funktion rand() aus stdlib.h nutzen.
    "a-=b" ist eine verkuerzte schreibweise fuer "a=a-b" - funktioniert auch fuer alle anderen operatoren.
    bemuehe fuer derartige fragen aber ruhig die dokumentation.



  • Ich habe das selbst schon Programmiert.
    Am anfang gibt man an wieviel Münzen auf dem Tisch liegen. Nur leider Gewinnt der PC IMMER, weil er anfängt.
    Der Code ist

    #include <iostream.h>
    #include <conio.h>
    int zugrechner(int muenzen2)
    {
    int zug = muenzen2%4;
    if (muenzen2%4 == 0)
       return 1;
    return zug;
    }
    
    int zugmensch(int muenzen2)
    {
    int eingabe;
    cout<<"Es liegen "<<muenzen2<<" auf dem Tisch!"<<endl;
    cin>>eingabe;
    return eingabe;
    }
    
    int main()
    {
        int muenzen;
        cout<<"Gib die Anzahld der Muenzen ein: ";
        cin>>muenzen;
    
        while(true)
        {
        muenzen = muenzen - zugrechner(muenzen);
        if (muenzen==0)
           {
           cout<<"Pc hat gewonnen!";
           break;
           }
        muenzen = muenzen - zugmensch(muenzen); 
            if (muenzen==0)
            {
            cout<<"Sie haben gewonnen!";
            break;
            }
        }
    getch();
    }
    


  • leider gewinnt der PC immer, weil er anfängt

    das stimmt nicht.



  • Ich habe schon sehr oft gespielt aber noch nie gewonnen!
    €: Hast du schon gespielt?





  • danke erstmal für die vielen antworten und ich wünsch noch allen n frohes neues

    allerdings zu den codes muss ich sagen, dass ich teile davon kenne und sie gelesen habe, aber ich möchte auch keine genaue Kopie von denen haben, weil es schließlich sowas wie ne hausaufgabe ist und es geht ja vorallem ums verstehen. deswegen möcht ich das schon irgendwie auf meine weise hinbekommen. trotzdem vielen dank, so seh ich jedenfalls mal ein paar bsps wie es sein könnte, das hilft mir auch schon sehr. danke nochmal!



  • LoTuS schrieb:

    #include <iostream.h>
    ...
    void main ()
    

    Wenn dir das dein Lehrer beigebracht hat, lies lieber ein Buch über C++, statt ihm weiter zuzuhören. Oder mach ihn mal darauf aufmerksam, dass ISO-14882 existiert. 🙂



  • ja, dass hab ich von meinem lehrer, aber ich wie gesagt ich bin absoluter anfänger, wahrscheinlich hat er uns das deswegen beigebracht.

    ansonten muss ich leider fragen was iso ... ist. weil ich ISO zwar gehört habe aber keine ahnung davon hab.^^



  • LoTuS schrieb:

    ja, dass hab ich von meinem lehrer, aber ich wie gesagt ich bin absoluter anfänger, wahrscheinlich hat er uns das deswegen beigebracht.

    Er hat euch leider kein C++ beigebracht, sondern etwas, was er fälschlicherweise für C++ hält. Er ist ganz offensichtlich nicht dazu qualifiziert.

    ansonten muss ich leider fragen was iso ... ist. weil ich ISO zwar gehört habe aber keine ahnung davon hab.^^

    http://de.wikipedia.org/wiki/Internationale_Organisation_für_Normung

    http://www.ishiboo.com/~nirva/c++/C++STANDARD-ISOIEC14882-1998.pdf



  • danke an alle die hier kommentare gepostet haben. ich hab das programm jetzt vollständig zum laufen gebracht, also nochmals vielen Dank 🙂


Anmelden zum Antworten