Ir ao conteúdo
  • Cadastre-se

C++ Campo minado com matrizes em C++


Ruvik Withers

Posts recomendados

Faço curso de TI na escola, e o professor deu uma atividade que era fazer um campo minado em C, sem muito problemas eu consegui fazer do meu jeito, porém o professor disse que não poderia fazer a atividade utilizando duas matrizes, o que me quebrou bastante, então se alguém puder me ajudar ou me dizer uma forma melhor de desenvolver o código, eu agradeço. O professor disse que é possível fazer o campo minado utilizando apenas um Do. Vou postar o código que fiz aqui:

#include <iostream>

int main (){
char matriz[5][5];
char matrizera[5][5];
int ponto = 0;
int bomba=0;
int vencer=0;
int lin;
int col;
int linha;
int coluna;

for(linha=0;linha<5;linha++){
    for(coluna=0;coluna<5;coluna++){
        matriz[linha][coluna] = 'o';
        matrizera[linha][coluna] = 'o';
    }
}
for(linha=0;linha<3;linha++){
    do{
        do{
            printf("Linha da bomba: ");
            scanf("%d",&lin);
        } while(lin<0 || lin>4);
        do{
            printf("Coluna da bomba: ");
            scanf("%d",&col);
        } while(col<0 || col>4);
    if (matrizera[lin][col] == 'x'){
        printf ("\nPosicao repitida\n");
        }
    } while (matrizera[lin][col] == 'x');
matrizera[lin][col] = 'x';
}


do{
    do{
    for(linha=0;linha<5;linha++){
        for(coluna=0;coluna<5;coluna++){
            printf("%c",matriz[linha][coluna]);
        }
        printf("\n");
    }
    do{
        printf("Linha da bomba: ");
        scanf("%d",&lin);
    } while(lin<0 || lin>4);
    do{
        printf("Coluna da bomba: ");
        scanf("%d",&col);
    } while(col<0 || col>4);
    if (matriz[lin][col] == '*'){
        printf ("\nPosicao Repitida\n");
    }
    } while(matriz[lin][col] == '*');
    if(matrizera[lin][col] == 'x'){
        bomba++;
    } else {
        ponto ++;
        matriz[lin][col]='*';
        matrizera[lin][col]='*';
    }
system("cls");
} while (ponto  < 10 && bomba != 1);

if (bomba > 0 ){
    printf ("O jogador 1 foi o vencedor: \n");
}else{
    printf ("O jogador 2 foi o vencedor: \n");
}
for(linha=0;linha<5;linha++){
        for(coluna=0;coluna<5;coluna++){
            printf("%c",matrizera[linha][coluna]);
        }
        printf("\n");
    }

system ("pause");
return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
12 horas atrás, Ruvik Withers disse:

[...] o professor disse que não poderia fazer a atividade utilizando duas matrizes, o que me quebrou bastante


Creio que o ideal seria você tentar descobrir formas, e os colaboradores tentarem ajudar com a implementação e/ou análise de viabilidade, pois faz parte do desenvolvimento esse processo de descoberta.

 

 

 

12 horas atrás, Ruvik Withers disse:

O professor disse que é possível fazer o campo minado utilizando apenas um Do. Vou postar o código que fiz aqui:

 

Creio que esse "Do" se refere ao "Do/While" (o comando em si é o While - laço de repetição), correto?.  Nesse caso, precisaria definir o que quer dizer com "apenas um". Seria um do/while só para todo o algoritmo ou um do/while para percorrer a matriz? ou seria outra coisa? De certo modo acho estranho essa limitação.

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O professor apenas não quer que seja feito com duas matrizes(caso fizer, sera descontado nota), no entanto ele disse que o campo minado poderia ser feito ultilizando um "Do/While", porém nós não necessariamente teríamos que fazer com apenas um "Do/While", ele só disse isso pra deixar claro que nós poderíamos. :3

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Ruvik Withers    você pode usar apenas uma matriz que dará certo sim, eu também fiz esse jogo de campo minado , pois meu professor de lógica de programação aqui do senac pediu para fazermos, e usei só uma matriz e consegui fazer o jogo bem parecido com o original , ele mostra quantas posições está a bomba próximo da posição que o usuário escolheu, e usei a própria matriz para guardar os caracteres do jogo como a bomba que é um " x "  e onde não é bomba é um " . " e também um número referente a distancia que se está da bomba, e a cada jogada é desenhada a matriz na tela .    mas seu código precisa ser todo modificado pois do jeito que está não conseguirá funcionar assim, começar do zero .

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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...