Brauche Hilfe bei Anfängerspiel



  • wow, ja danke erstmal für die schnelle reaktion.

    außerdem bin ich überrascht das du nur so wenig mängel gefunden hast, ich dachte jetzt da wären mehr XD.

    aber ich muss gestehen das ich deinen vorschlag nicht so ganz verstehe, also was du tust.

    du sagst unter der bedingung das die gesamtanzahl der münzen größer 0 ist spieler am zug = 1 ???
    und dann die switchanweisung die zwei cases vorgibt, aber wann werden denn die cases aktiviert? dass versteh ich nicht so ganz.

    mAnzahl-=gewaehlteMuenzen;

    gibt doch keinen sinn oder?
    jedenfalls hab ich soetwas noch nie gesehen, könntest du das vlt genauer erläutern. (ich meine jetzt mAnzahl- = gewaehlteMuenzen also was soll das - vor dem gleich)

    alles andere hab ich verstanden und werd ich ändern bzw umsetzen versuchen, vielen dank nochmal 🙂

    noch eine frage, wie könnte ich eine zufalls wahl einbauen. also das der computer selbst eine zahl zwischen zwei parametern sucht, in diesem fall wäre das 1-3. damit der computer wärend der spielzeit nicht immer NUR 3, 2 oder 1 nimmt.
    das war ja auch mein problem, dass wenn ich durch % teile, mehrere möglichkeiten, bzw alle möglichkeiten eingegeben werden.

    wie gesagt, noch anfänger, deswegen hab ich zu solchen dingen auch so viele fragen ^^".

    [edit]
    hmm ich hab grad mit meinem c++builder die routine versucht, aber er sagt wenn der curser hinter dem void steht "fehler in der deklarationssyntax" wie darf ich das verstehn, meint er damit ein fehler in den unterprogrammen?

    der quelltext ist der selbe wie oben angegeben



  • 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