Dabei ist es egal, welche Spielvariante wir nutzen, wir entscheiden uns für folgende:
Es werden z.B. zwanzig Münzen auf den Tisch gelegt, und die beiden Spieler dürfen abwechselnd eine, zwei oder drei Münzen nehmen. Wer die letzte Münze nimmt, der hat gewonnen. Wir wollen dieses Spiel gegen den Rechner spielen.
Wir haben bis jetzt folgenden Ansatz: (aus dem Internet)
Die Frage ist nun, wie programmiere ich wirklich das Nim-Spiel? Inwiefern ist unser Ansatz von Richtigkeit?
Bitte helft mir sobald wie möglich

#include <iostream.h>
int zugMensch(int anzahlDerMuenzen)
{
int ergebnis;
cout<<"Jetzt liegen "<<anzahlDerMuenzen<<" Muenzen auf dem
Tisch."<<endl;
cout<<"Wieviele moechten Sie nehmen? ";
cin>>ergebnis;
return ergebnis;
};
int zugRechner(int anzahlDerMuenzen)
{
int wunschZug=anzahlDerMuenzen%4;
if(wunschZug==0)
return 1;
else
return wunschZug;
};
void main()
{
int anzahlDerMuenzen;
// Eingabe der Anfangs-Münzenanzahl
cout<<"Mit wievielen Muenzen fangen wir an? " ;
cin>>anzahlDerMuenzen;
// endlosschleife
while(true)
{
anzahlDerMuenzen=anzahlDerMuenzen-zugRechner(anzahlDerMuenzen);
if(anzahlDerMuenzen==0)
{
cout<<"Ich habe gewonnen!"<<endl;
return;
};
anzahlDerMuenzen=anzahlDerMuenzen-zugMensch(anzahlDerMuenzen);
if(anzahlDerMuenzen==0)
{
cout<<"Sie haben gewonnen!"<<endl;
return;
};
};
};