Exercice : Marienbad

On va créer une fonction compteur_bille ; c’est elle qui va demander à chaque joueur combien de billes il veut retirer, vérifier que ce nombre est bien compris entre 1 et 5 et n’est pas supérieur ou égal au nombre de billes restant dans le sac.
La fonction principale quant à elle gérera quel est le joueur en cours et indiquera à chaque joueur le nombre de billes restant dans le sac.

Correction

#include <stream.h>
//Fonction compteur de billes : c'est elle qui effectue les calculs du nombre billes dans le sac
//et demande la saisie du nombre de billes que veut retirer le joueur en cours
int comptbille (int nbbilles)
{
  int n;
  cout<<"Combien de billes voulez vous enlever? ";
  cin>>n;
  //teste si le nombre de bille que le joueur veut enlever est bien compris entre 1 et 5,
  //ou teste si le joueur ne veut pas enlever plus de billes qu'il n'en reste dans le sac
  //(c'est à dire enlever la dernière bille)
  while (n>5||n<1||n>=nbbilles)
    {
      if (n>5||n<1)
                {
                  cout<<"Vous ne pouvez enlever que de 1 à 5 billes."<<endl<<"Combien de billes voulez vous enlever? ";
                  cin>>n;
                }
      if (n>=nbbilles)
                {
                  cout<<"il ne reste que "<<nbbilles<<" billes dans le sac."<<endl<<" Vous ne pouvez donc enlever que "<<nbbilles-1<<" billes au maximum."<<endl<<"Combien de billes voulez vous enlever? ";
                  cin>>n;
                }
    }
  nbbilles=nbbilles-n;
  return(nbbilles);
}
//fonction principale : qui gère quel est le joueur en cours et indique qui est le gagnant
void main()
{
  int billes;
  billes=20;
  while (billes!=1)
    {
      cout<<"Joueur 1"<<endl;
      cout<<"il reste "<<billes<<" billes dans le sac."<<endl;
      billes=comptbille(billes);
      if (billes==1)
                  cout<<"Joueur 1 vainqueur"<<endl;
      else
                {
                  cout<<"Joueur 2"<<endl;
                  cout<<"il reste "<<billes<<" billes dans le sac."<<endl;
                  billes=comptbille(billes);
                    if (billes==1)
                         cout<<"Joueur 2 vainqueur"<<endl;
                }
    }
}
Suivant
« Précédent
Précédent
Suivant »

ConversionConversion EmoticonEmoticon

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.