Démineur sous devc++

Contenu du snippet

Un démineur basique un peu naze mais bon, il fonctionne.
La grille du démineur s'étend sur 81 cases, donc au départ inutile de choisir un chiffre supérieur à 81.

Le jeu se termine lorsque l'on tombe sur une mine ou si on atteint 10 points.

Source / Exemple :


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

// VARIABLES GLOBALES
int l,c;
int Tab[9][9];

// AFFICHE LA ZONE
void map()
{
int i,j;
gotoxy(3,1);
for(i=1;i<=9;i++)printf(" %d ",i);
gotoxy(0,2);
   for(i=1;i<=9;i++)
   {
     printf("\n\n%d ",i);
     for(j=1;j<=9;j++)
     printf(" X ");
   }
}

// MINE LE TERRAIN
void mine(int nb_mine)
{
int i,j,a,b,compt;
bool ok;
for(i=1;i<=9;i++)
  for(j=1;j<=9;j++)
  Tab[i][j]=0;
    // selon nombre de mines
    for(compt=1;compt<=nb_mine;compt++)
    {
    ok=0;
       do
       {
       a=1+rand()%9;
       b=1+rand()%9;
       if(Tab[a][b]!=1){Tab[a][b]=1;ok=1;}
       }
       while(ok==0);
    }
}

// CORPS DU JEU
int main()
{
bool gagne=1,ok;
int l,c,pt=0,nb_mine;
textcolor(15);
printf("Combien de mines? ");
scanf("%d",&nb_mine);
mine(nb_mine);
system("cls");
map();

  do
  {
  ok=0;
  textcolor(10);
             while(ok==0)
             {
             gotoxy(35,1);
             printf("Ligne:  \b");
             scanf("%d",&l);
             gotoxy(35,2);
             printf("Colonne:  \b");
             scanf("%d",&c);
                if(l<1||l>9||c<1||c>9)
                {
                ok=0;
                gotoxy(35,4);
                printf("Saisie incorrecte");
                Sleep(1500);
                gotoxy(35,4);
                printf("                 ");
                }
                else ok=1;
             }
  textcolor(15);
  gotoxy((3*l)+1,(2*c)+1);
    if(Tab[l][c]==1)
    {
    textcolor(12);
    printf("\1");
    gagne=0;
    textcolor(15);
    }
    else{
            if(Tab[l][c]==0)
            {
            printf(" ");
            pt++;;
            gotoxy(1,22);
            printf("Points: %d",pt);
            Tab[l][c]=2;
            }
        }
  Sleep(1000);
  }
  while(gagne==1&&pt<10);

system("cls");
if(gagne==1)printf(" TU AS GAGNE BIEN JOUE !! ");
else printf(" LOOSER !! \a\a");
Sleep(2000);
return 0;
}

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.