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.