000
12.01.2005, 22:08 Uhr
mimi1983
|
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. Der Rechner soll auf dem Bildschirm jeweils anzeigen, wie viele Münzen er nimmt. Außerdem sollen für den Menschen nur gültige Züge möglich sein. Schreiben Sie dazu in die Funktion zugMensch eine Schleife, die so lange Eingaben erwartet, bis der Spieler einen gültigen Zug macht.
C++: |
#include <iostream>
using namespace std; #include <stdlib.h>
int zugRechner(int anzahlDerMuenzen) { int wunschZug=anzahlDerMuenzen%4; if(wunschZug==0) wunschZug=1; cout<<"Der Computer nimmt "<<wunschZug<<" Muenze(n)"<<endl; return wunschZug; };
int zugMensch(int anzahlDerMuenzen) { int ergebnis=0; while(ergebnis<1 ¦¦ ergebnis>3) { cout<<"Spieler ("<<anzahlDerMuenzen<<"): "; cin>>ergebnis; if(ergebnis<1 ¦¦ ergebnis>3) cout<<"Sie duerfen nur zwischen 1 und 3 Muenzen nehmen!"<<endl; if(ergebnis>anzahlDerMuenzen) { cout<<"So viele Muenzen liegen nicht mehr auf dem Tisch!"<<endl; ergebnis=0; } }; return ergebnis; }
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; }; }; };
|
Dieser Post wurde am 12.01.2005 um 22:11 Uhr von Windalf editiert. |