Das Nimm-Spiel



  • Hallo,
    ich mal wieder 😃 Ich bin glaube ich echt zu doof fürs Programmieren!
    Folgendes:
    Ich hab mal versucht ein Nimm-Spiel zu Programmieren!
    Nur leider kriege ich des "optische" da nicht rein...
    Soweit ist der Quelltext fertig :

    //--------------------------------------------------------------
    #include <iostream>
    #include <string>
    using namespace std;
    //--------------------------------------------------------------
        int mensch(int hoelzer)
        {
            int wahl;
            cout<<"Es liegen noch "<<hoelzer<<" auf dem Tisch!"<<endl;
            cout<<"Wie viele hoelzer wollen sie nehmen?"<<endl;
            cin>>wahl;
            return wahl;
        }
        int pc (int hoelzer)
        {
            int zug;
            zug=hoelzer%4;
            if(zug==0)
            {
                return 1;
            }
            else
            {
                return zug;
            }
        }
    int main()
    {
        int hoelzer;
        cout<<"Wie viele hoelzer sollen auf dem tisch liegen?"<<endl;
        cin>>hoelzer;
        while(true)
        {
            hoelzer=hoelzer-mensch(hoelzer);
            if(hoelzer==0)
            {
                cout<<"Sie haben gewonnen!"<<endl;
                system("pause");
                return 0;
            }
            hoelzer=hoelzer-pc(hoelzer);
            if(hoelzer==0)
            {
                cout<<"Sie haben verloren!"<<endl;
                system("pause");
                return 0;
            }
        }
    }
    

    aber wie und wo kriege ich jetzt so eine ausgabe rein ...
    Insgesamt gebe ich 16 Hölzer ein und er soll dann so ein Bild generieren:

    1: |
    3: | | |
    5: | | | | |
    7: | | | | | | |
    
    //3 Hölzer werden weggenommen
    
    1: |
    3: | | |
    2: | |
    7: | | | | | | |
    

    und das auchnoch als Funktion z.B. mit diesem Namen ?
    void show_heap(int h1, int h2, int h3, int h4)

    Und zudem kann man mehr als 3 Hoelzer wegnehmen obwohl ich es doch so Programmiert habe :D?
    Ich komm nicht weiter ...

    Und wenn ihr dann noch lust hättet könnt ihr mir sagen wie ich gegen einen spiele der neben mir sitzt ? so das der PC rausfliegt :/??



  • MaiKzZ schrieb:

    aber wie und wo kriege ich jetzt so eine ausgabe rein ...
    Insgesamt gebe ich 16 Hölzer ein und er soll dann so ein Bild generieren:

    1: |
    3: | | |
    5: | | | | |
    7: | | | | | | |
    
    //3 Hölzer werden weggenommen
    
    1: |
    3: | | |
    2: | |
    7: | | | | | | |
    

    Und wer saht dir, daß die drei Hölzchen jetzt nicht vom zweiten Stapel genommen wurden? Bei deinen Vorgaben kannst du nur einen großen Haufen darstellen - entweder als Anzahl oder als eine Serie von Symbolen (Stichwort: for-Schleife).

    Und zudem kann man mehr als 3 Hoelzer wegnehmen obwohl ich es doch so Programmiert habe :D?

    DAnn solltest du eventuell auch überprüfen, ob die Eingabe des Spielers korrekt war 😉

    Und wenn ihr dann noch lust hättet könnt ihr mir sagen wie ich gegen einen spiele der neben mir sitzt ? so das der PC rausfliegt :/??

    Nimm dir eine Schachtel Streichhölzer und schon kann es los gehen 😃
    (falls du eine optimale Strategie willst, rechne mal von hinten her, bei welchen Anzahlen der Gegner auf keinen Fall gewinnen kann)



  • Und wie gebe ich ein Haufen aus der immer die eingabe abzieht und davor schriebt wieder viele noch da sind ?



  • MaiKzZ schrieb:

    Ich hab mal versucht ein Nimm-Spiel zu Programmieren!

    Anmerkung am Rande: Das Spiel heißt "Nim".
    Nee, das ist eine Verwechslung. Der Code ist vom Nimm-Spiel http://www2.hs-augsburg.de/informatik/vorlesungen/XX/c_cplus/tutorial/henkel/NimmSpiel.html und die Bildchen vom Nim-Spiel http://de.wikipedia.org/wiki/Nim-Spiel.



  • MaiKzZ schrieb:

    Und wie gebe ich ein Haufen aus der immer die eingabe abzieht und davor schriebt wieder viele noch da sind ?

    Das machst du doch schon, indem du immer die Zahlen ausgibst. Wenn du unbedingt willst, kannst du den Teil cout<<"Es liegen noch "<<hoelzer<<" auf dem Tisch!"<<endl; ersetzen durch eine for-Schleife, die 'hoelzer' mal ein '|' auf den Bildschirm ausgibt.


Anmelden zum Antworten