Ir ao conteúdo
  • Cadastre-se
PimpolhoTaDeOlho

C campo minado em c

Posts recomendados

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++;  
 }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Junte-se à conversa

Você pode postar agora e cadastrar-se depois. Se você tem uma conta, faça o login para postar.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restore formatting

  Só é possível ter até 75 emoticons.

×   O link foi automaticamente convertido para mostrar o conteúdo.   Clique aqui para mostrá-lo como link comum

×   Seu texto anterior foi restaurado.   Limpar o editor

×   You cannot paste images directly. Upload or insert images from URL.






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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!