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

Soyez le premier à donner votre avis sur cette source.

Vue 9 836 fois - Téléchargée 535 fois

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

Ajouter un commentaire Commentaires

il ne marche pas il est eclatés
Messages postés
20
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
1 mars 2006

moi g un probleme avec getch() j'utilise dev c++ 4
Messages postés
2
Date d'inscription
mardi 21 mai 2002
Statut
Membre
Dernière intervention
23 mai 2002

j'aime bien mais je voudrais savoir pourquoi il n'y a pas de rubrique aperçu comme ça on pourrait connaitre l'allure de l'interface !!! sinoon le code est trés lisible

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.