Ir ao conteúdo
  • Cadastre-se
PimpolhoTaDeOlho

C campo minado em c

Recommended Posts

Boa noite galera, estou desenvolvendo um campo minado em c, e estou tendo dificuldade em fazer o loop que abre casa dos zeros até achar dicas de bomba,como acontece no jogo mesmo, o programa está em desenvolvimento, e só precisa de basicamente (além de coisas mais básicas) isso para funcionar, guardadas as devidas limitações que o c apresenta para interface. segue código abaixo

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

void zerarMatriz(int t[9][9]);
void mostrarMatriz(int t[9][9]);
void sortearBombas(int t[9][9]);
void calculadica (int t[9][9]);
void tabusuario (int tabusu[9][9]);
void calculadica (int t[9][9]);
void jogatina(int tabusu[9][9], int t[9][9]);
int main() {
 int t[9][9],tabusu[9][9];
    zerarMatriz(t);
    sortearBombas(t);
    calculadica (t);
    mostrarMatriz(t);
    tabusuario (tabusu);
    jogatina (tabusu,t);
    //       - vazio -> abre e analisa vizinhos
    //    se B
    //       - marca a bomba
    //  até ganhar ou perder
 return 0;
}


void zerarMatriz(int t[9][9]) {
 int i, j;
 for (i=0; i<9; i++) {
  for (j=0; j<9; j++) {
   t[j] = 0;
  }
 }
}

void mostrarMatriz(int t[9][9]) {
 int i, j;
 printf("\n");
 for (i=0; i<9; i++) {
  for (j=0; j<9; j++) {
   printf (" %d ", t[j]);
  }
  printf ("\n");
 }
 printf ("\n");
}

void sortearBombas(int t[9][9]) {
 int i, j, cb = 0;
 srand(time(NULL));
 
 while (cb < 10) {
  i = rand()%9;
  j = rand()%9;
  if (t[j] == 0) {
   t[j] = -1;
   cb++;
  }
 }
}
void calculadica (int t[9][9]){
 int i=0,j=0,dicabomba;
 
 for (i=0; i<9; i++) {
  for (j=0; j<9; j++) {
   dicabomba=0;
   if (t[j]==0){
    
     if (t[j+1]==-1){
     dicabomba++;
     }
      if (t[j+2]==-1){
      dicabomba++;
      } 
         
       if (t[j-1]==-1 && j-1>=0){
       dicabomba++;
       }
        if (t[j-2]==-1 && (j-2)>=0){
        dicabomba++;
        }
         if (t[i+1][j]==-1){
         dicabomba++;
         }
          if (t[i+2][j]==-1){
          dicabomba++;
          }
           if (t[i-1][j]==-1 && (i-1)>=0){
           dicabomba++;
           }
            if (t[i-2][j]==-1 && (i-2)>=0){
            dicabomba++;
            }
            t[j]=dicabomba;
  } 
 }
}
}
void tabusuario (int tabusu[9][9]){
int i, j;
    int l, c;
    for(i = 0; i < 9; i++){
        for(j = 0; j < 9; j++){
            tabusu[j] = 0;}
        }
    for(c = 0; c < 9; c++){
    printf("\n\n");
 
    for(l = 0; l < 9; l++)
    {
        for(c = 0; c < 9; c++)
        {
        printf("%d ", tabusu[l][c]);
        }
        printf("\n");
    } 
}
}
void jogatina (int tabusu[9][9], int t[9][9]){
 int x, y,bomba,resp,i=0,l,c;
 while (i<10){
  printf ("digite a coordenada x: ");
  scanf ("%d",&x);
  printf ("digite a coordenada y: ");
  scanf ("%d",&y);
  if (x+1<=0 || y+1<=0 || y+1>9 || x+1>9){
   printf ("esta coordenada nao existe, tente outra");
   break;
  }
  printf ("\n digite o que deseja fazer: (1)abrir ou (2)marcar bomba \n");
  scanf ("%d", &resp);
  
  
  if (resp=1){
  tabusu[x-1][y-1]=t[x-1][y-1];
  
  if (t[x-1][y-1]==-1){
  tabusu[x-1][y-1]=-1;
 
 {
  for(l = 0; l < 9; l++)
      {
         for(c = 0; c < 9; c++)
          {
          printf("%d ", t[l][c]);
          }
           printf("\n");
      }
   printf ("BOMBA!, voce PERDEU");
   break;
 }
}

 if (t[x-1][y-1]!=-1){
  tabusu[x-1][y-1]=3;   
 }
}

 for(l = 0; l < 9; l++)
    {
        for(c = 0; c < 9; c++)
        {
        printf("%d ", tabusu[l][c]);
        }
        printf("\n");
    }    
i++;  
 }
}

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×