Jeu des allumettes avec ia [dev-c++]

Description

voici un petit jeu d'allumettes ou vous devez prendre 1, 2 ou 3 allumettes, celui qui prend la derniere a perdu. On peut choisir le nombre d'allumettes et le niveau de difficulte.
en mode facile on le bat a tous les coups et en difficile on gagne presque jamais.
en mode facile, il prend a tous les coups un nombre d'allumettes au hasard (meme quand il n'en reste que 3 !), en normal il prend toujours au hasard sauf si il reste 4, 3 ou 2 allumettes et en difficile il essaye a chaque coup d'amener le nombre d'allumettes a un nombre ou c'est impossible de gagner (1,5,9,13,17,21,25,29). Si c'est son tour et qu'il y a un de ses nombres d'allumetes, il joue au hasard, et la l'utilisateur peut gagner si jamais a chaque coup il compte le nombre d'allumettes restantes et essaye de ramener le nombre d'allumettes a un nombre impossible (comme fais le pc koi)

Source / Exemple :


#include <stdio.h>
#include <conio.c>

#define    GAUCHE    75
#define    DROITE    77
#define    ENTER     13
#define    ESCAPE    27

int hasard(int max);

void main()
{
  int  increment;
  int  tour=1;
  int  enleve=0;
  int  difficulte=1;
  int  allumettes=6;
  char touche;

  textcolor(12);
  printf("LE JEU DES ALUMETTES\n\n");
  textcolor(14);
  printf("Voici un petit jeu ou devez prendre 1 2 ou 3\n");
  printf("allumettes, et le joueur qui prend la derniere\n");
  printf("allumette a perdu.");
  do
  {
    gotoxy(1,8);
    textcolor(14);
    printf("Nombre d'allumettes : ");
    textcolor(10);
    printf("%-2d",allumettes);
    touche=getch();
    if (touche==GAUCHE)
    {
      allumettes--;
      if (allumettes==5) allumettes=30;
    }
    if (touche==DROITE)
    {
      allumettes++;
      if (allumettes==31) allumettes=6;
    }
  } while (touche!=ENTER);
  do
  {
    gotoxy(1,9);
    textcolor(14);
    printf("Difficulte : ");
    textcolor(10);
    switch (difficulte)
    {
      case 1: printf("facile   ");
              break;
      case 2: printf("normal   ");
              break;
      case 3: printf("difficile");
              break;
    }
    touche=getch();
    if (touche==GAUCHE)
    {
      difficulte--;
      if (difficulte==0) difficulte=3;
    }
    if (touche==DROITE)
    {
      difficulte++;
      if (difficulte==4) difficulte=1;
    }
  } while (touche!=ENTER);
  clrscr();
  do
  {
    textcolor(10);
    for (increment=1 ; increment<=allumettes ; increment++)
    {
      gotoxy(increment*2,2);
      printf("\xDB");
      gotoxy(increment*2,3);
      printf("\xDB");
      gotoxy(increment*2,4);
      printf("\xDB");
    }
    if (tour==2)
    {
      textcolor(12);
      if (difficulte==1)
      {
        if (allumettes>3) enleve=hasard(3);
        else
        {
          if (allumettes==3) enleve=hasard(2);
          else enleve=1;
        }
      }
      if (difficulte==2)
      {
        switch (allumettes)
        {
          case 4:  enleve=3;
                   break;
          case 3:  enleve=2;
                   break;
          case 2:  enleve=1;
                   break;
          case 1:  enleve=1;
          default: enleve=hasard(3);
        }
      }
      if (difficulte==3)
      {
        enleve=0;
        increment=2;
        if (allumettes==1) enleve=1;
        while (enleve==0)
        {
          if (allumettes==increment+0) enleve=1;
          if (allumettes==increment+1) enleve=2;
          if (allumettes==increment+2) enleve=3;
          if (allumettes==increment+3) enleve=hasard(3);
          increment=increment+4;
        }
      }
      allumettes=allumettes-enleve;
      gotoxy(1,6);
      printf("L'ordinateur prend %d allumettes",enleve);
      tour=1;
    }
    else while (tour==1)
    {
      textcolor(14);
      gotoxy(1,7);
      printf("Combien d'allumettes voulez-vous prendre ? ");
      touche=getch();
      enleve=0;
      switch (touche)
      {
        case '1':  enleve=1;
                   tour=2;
                   break;
        case '2':  enleve=2;
                   tour=2;
                   break;
        case '3':  enleve=3;
                   tour=2;
                   break;
      }
      if (((enleve>=allumettes)&&(allumettes>1))||((enleve>1)&&(allumettes==1)))
      {
        gotoxy(1,7);
        if (allumettes==3) printf("Vous pouvez enlever maximum 2 allumettes ! ");
        else printf("Vous pouvez enlever maximum 1 allumette !  ");
        sleep(2000);
        tour=1;
      }
      else allumettes=allumettes-enleve;
      if (tour==2) printf("%d",enleve);
      if (touche==ESCAPE) tour=2;
    }
    if (tour==1) textcolor(12);
    else textcolor(14);
    for (increment=1 ; increment<=enleve ; increment++)
    {
      gotoxy((increment*2)+(allumettes*2),2);
      printf("\xDB");
      gotoxy((increment*2)+(allumettes*2),3);
      printf("\xDB");
      gotoxy((increment*2)+(allumettes*2),4);
      printf("\xDB");
    }
    if (allumettes==0)
    {
      if (tour==2)
      {
        for (increment=10 ; increment<=14 ; increment++)
        {
          gotoxy(1,9);
          textcolor(increment);
          printf("##### ##### #   # #####  ##### #   # ##### #####\n");
          printf("#     #   # ## ## #      #   # #   # #     #   #\n");
          printf("#   # ##### # # # #####  #   # #   # ##### #####\n");
          printf("#   # #   # #   # #      #   #  # #  #     # #  \n");
          printf("##### #   # #   # #####  #####   #   ##### #  # \n");
          sleep(200);
        }
        printf("\nC'est si dur que ca ?");
        getch();
      }
      else
      {
        for (increment=10 ; increment<=14 ; increment++)
        {
          gotoxy(1,9);
          textcolor(increment);
          printf("####  ##### ##### #   # #####\n");
          printf("#   # #   # #   # #   # #   #\n");
          printf("####  ##### ##### #   # #   #\n");
          printf("#   # # #   #   #  # #  #   #\n");
          printf("####  #  #  #   #   #   #####\n");
          sleep(200);
        }
        if (difficulte==1) printf("\nMais en mode facile c'est pas dure !");
        if (difficulte==2) printf("\nPas mal, maintenant essayez en difficile !");
        if (difficulte==3) printf("\nBravo, vous avez reussi avec la plus haute difficulte !");
        getch();
      }
    }
  } while ((touche!=ESCAPE)&&(allumettes!=0));
}

/*DONNE UN NOMBRE AU HASARD DE 1 A max*/
int hasard(int max)
{
  int nombre;
  srand(time(NULL));
  nombre=rand() % max;
  nombre++;
  return nombre;
}

Conclusion :


voila essayez de le batte en difficile sans compter a chaque fois le nombre d'allumettes !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.