Ich bin gerade dabei ein paar Visual c++ Tutorials durchzuarbeiten und bin gerade dabei ein Nimm-Spiel zu schreiben.
[erklärung]
Man legt eine Bestimmte Anzahl an Münen auf den Tisch und jeder darf abwechselnd 1-3 Münzen ziehn, derjenige der die letzte Münze nimmt hat gewonnen
[/erklärung]
Der Computer Spielt eigentlich auch ganz fair bis zum letzten Zug, dann nämlich bricht er die Regeln meiner Programmierung und zieht 4 Münzen, jetzt habe ich das mit einer while schleife abgefangen und was macht der PC? Er zieht 3 und gewinnt doch noch
Könnt ihr mal den Code durchschauen und mir sagen was ich falsch Programmiert habe?
P.S.:Bitte nicht auf den Schreibstyl achten!
Bin um jede Antwort dankbar
[erklärung]
Man legt eine Bestimmte Anzahl an Münen auf den Tisch und jeder darf abwechselnd 1-3 Münzen ziehn, derjenige der die letzte Münze nimmt hat gewonnen
[/erklärung]
Der Computer Spielt eigentlich auch ganz fair bis zum letzten Zug, dann nämlich bricht er die Regeln meiner Programmierung und zieht 4 Münzen, jetzt habe ich das mit einer while schleife abgefangen und was macht der PC? Er zieht 3 und gewinnt doch noch

Code:
#include <iostream.h>
#include <stdlib.h>
int AnzahlderMuenzen;
int computerzug;
int zugspieler2;
int RandomInt(int iMin, int iMax)
{
return iMin + int((float)(iMax+1) * rand()/(RAND_MAX+1.0));
};
void main()
{
cout << "Mit wie vielen Muenzen wollen wir anfangen? :";
cin >> AnzahlderMuenzen;
while (AnzahlderMuenzen > 0)
{
cout << "Der Computer ist dran"<< endl;
computerzug = RandomInt(1, 3);
if (computerzug >3)
cout << "Der Computer zieht " << computerzug << " Muenzen!" << endl;
else
;
while (computerzug > 3 || computerzug < 1)
{
cout << "Der Computer hat einen ungültigen Zug gemacht!";
cout << "Der Comnputer zieht nochmal!";
computerzug = RandomInt(1, 3);
}
cout << "Der Computer zieht " << computerzug << " Muenzen!" << endl;
AnzahlderMuenzen = AnzahlderMuenzen - computerzug;
if (AnzahlderMuenzen <= 0)
{
cout << "Der Computer hat gewonnen!" << endl;
break;
}
else
{
cout << "Es liegen noch " << AnzahlderMuenzen << " Muenzen auf dem Tisch" << endl;
cout << "Spieler 2 Sie sind dran!" << endl;
}
cout << "Spieler 2 wie viele Muenzen moechten Sie ziehen? :";
cin >> zugspieler2;
while (zugspieler2 > 3 || zugspieler2 < 1)
{
cout << "Das ist eine Ungueltige Eingabe, geben Sie bitte eine Zahl zwischen 1 und 3 ein";
cout << "Spieler 2 wie viele Muenzen moechten Sie ziehen? :";
cin >> zugspieler2;
}
AnzahlderMuenzen = AnzahlderMuenzen - zugspieler2;
if (AnzahlderMuenzen <= 0)
cout << "Spieler 2 Sie haben gewonnen" << endl;
else
cout << "Es liegen noch " << AnzahlderMuenzen << " Muenzen auf dem Tisch" << endl;
}
}
P.S.:Bitte nicht auf den Schreibstyl achten!
Bin um jede Antwort dankbar