Jeu Des Allumettes: Adaptée Du Livre de Jacques Deconchat: "102 Programmes Pour MO6, TO8 Et TO9+"
Jeu Des Allumettes: Adaptée Du Livre de Jacques Deconchat: "102 Programmes Pour MO6, TO8 Et TO9+"
Jeu Des Allumettes: Adaptée Du Livre de Jacques Deconchat: "102 Programmes Pour MO6, TO8 Et TO9+"
Travaux Pratiques.
Un certain nombre d’allumettes est disposé entre les deux partis, l’ordinateur et vous. Le but
du jeu est de ne pas retirer la dernière allumette. Pour se faire, une prise maximale est
désignée par le joueur.
Puis, tour à tour, chaque parti donne le nombre d’allumettes qu’il prend. L’ordinateur répond
grâce à la fonction décrite ci-dessous :
s = prise_max + 1;
t = ((float) (nb_allum - s)) / (prise_max + 1);
prise = s - 1;
if (prise == 0)
prise = 1;
return (prise);
}
Exemple :
prise = jeu_ordi (10,3) ;
La partie se termine lorsqu’il n’y a plus d’allumettes sur la table. La personne ayant tiré la
dernière allumette est le perdant, l’autre le vainqueur.
Exemple de solution
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
s = prise_max + 1;
t = ((float) (nb_allum - s)) / (prise_max + 1);
prise = s - 1;
if (prise == 0)
prise = 1;
return (prise);
}
int main ()
{
int nb_max_d=0; /*nbre d'allumettes maxi au d‚part*/
int nb_allu_max=0; /*nbre d'allumettes maxi que l'on peut tirer
au maxi*/
int qui=0; /*qui joue? 0=Nous --- 1=PC*/
int prise=0; /*nbre d'allumettes prises par le joueur*/
int nb_allu_rest=0; /*nbre d'allumettes restantes*/
clrscr ();
do
{
printf ("\nNombre maximal d'allumettes que l'on peut retirer:
\n");
scanf ("%d",&nb_allu_max);
}
while (nb_allu_max >= nb_max_d);
/* On répète la demande de prise tant que le nombre donné n'est pas
correct */
nb_allu_rest = nb_max_d;
do
{
if (qui==0)
{
do
{
printf ("\nCombien d'allumettes souhaitez-vous
piocher?\n");
scanf ("%d",&prise);
}
while ((prise > nb_allu_rest) || (prise > nb_allu_max));
/* On répète la demande de prise tant que le nombre donné
n'est pas correct */
}
else
{
prise = jeu_ordi (nb_allu_rest , nb_allu_max);
printf ("\nPrise de l'ordi : %d\n",prise);
}
qui=!qui;
getch ();
return (0);
}