Ir ao conteúdo
  • Cadastre-se

Kina_fd

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Kina_fd

    C Campo minado em c

    Eu estou com um trabalho pra fazer um campo minado só que em grupo mas não esta funcionando muito bem porque fizemos nossas partes separados, assim estamos tentando ajeitar e fiz a parte de abrir casa e contar bombas perto da casa aberta, a unica que eu tenho certeza que esta errada e a da bandeirinha poderiam me ajudar OBS:Tenhe que ter os 3 modos fácil,medio e difícil #include<stdio.h> #include<locale.h> #include<stdlib.h> #include<ctype.h> #include<time.h> int i,j; char matriz[100][100]; int totalban; //Declaracoes das funcoes int abrir(int i, int j, int mat); int cont_bomb(int i, int j, int m); char menu(char op); char configuração(char op2); void sair(char op2); void fácil(char op2); void sorteiobombasfacil(int i,int j); void medio(char op2); void sorteiobombasmedio(int i,int j); void difícil(char op2); void sorteiobombasdificil(int i,int j); void ler_posicao(int L, int C); void checar_posicao(int L, int C); int bandeiraganho(int bomba[i][j], int bandeirinha[i][j]); void sorteiobombasfacil(int i,int j); #define tam 5 char bomb = 'b'; int vazio = 0; int main(){ setlocale(LC_ALL, "portuguese"); // s2s2s22s2s2s2s2s2s22s2s2s2s// //declaracao de variaveis int i, j, matriz[20][20]; char op,op2,op3 = 'S'; while (op3 == 'S'){ //vai chamar a funcao menu op = menu(op); while(op != 'J' && op != 'C' && op != 'S' ){ printf ("\tNão entendi o que voce digitou digite novamente por favor"); printf ("\n\n\n"); system ("PAUSE"); system ("cls"); op = menu(op); } //Vai ddesignar o jogador a opcao que ele escolheu switch (op){ //vai iniciar o jogo case 'J': fácil(op2); break; //vai mostra as opções de jogo para o jogador case 'C': //vai chamar a funcao de configuacao op2 = configuração(op2); //vai rodar enquanto o usuario tiver digitando errado while(op2 != 'F' && op2 != 'M' && op2 != 'D' ){ printf ("\tNão entendi o que voce digitou digite novamente por favor"); printf ("\n\n\n"); //vai chamar a funcao de configuacao op2 = configuração(op2); } switch (op2){ //caso o jogador escolha a opcao de jogo fácil case 'F': //vai chamar a funcao fácil fácil(op2); break; //caso o jogador escolha a opcao de jogo medio case 'M': //vai chamar a funcao medio medio(op2); break; //caso o jogador escolha a opcao de jogo difícil case 'D': //vai chamar a funcao difícil difícil(op2); break; } break; //caso o usuario deseja finalizar o jogo case 'S': system ("PAUSE"); system ("cls"); //vai chamar a funcao sair sair(op2); printf("\n\n\n"); //vai finalizar o programa return 0; break; } system ("PAUSE"); system ("cls"); //vai pergunta o jogador se ele deseja jogar navamente printf ("voce deseja jogar novamente? (sim = S e não = qualquer outra tecla)"); scanf (" %c",&op3); //vai fazer com que a letra que o usuario digitou fique em maiusculo op3 = toupper(op3); printf ("\n\n\n"); //vai testar se o jogador deseja continuar com o jogo if (op3 == 'S'){ system ("PAUSE"); system ("cls"); } } system ("PAUSE"); system ("cls"); //vai chamar a funcao sair sair(op2); printf("\n\n\n"); return 0; } //vai mostra o menu em tela char menu(char op){ printf ("\t***********************************"); printf ("\n\t*\t\tMENU\t\t *\n"); printf ("\t***********************************"); printf ("\n\n\n\n\t\t CAMPO MINADO"); printf ("\n\n\n\n\n"); printf ("\n\tOPÇÕES:"); printf ("\n"); printf ("\n\n\tJogar (J)"); printf ("\n\tConfigurações (C)"); printf ("\n\tSair (S)\n\n\n"); //vai ler a opcao que o usuario digitou printf("\t"); scanf (" %c",&op); //vai fazer com que a letra que o usuario digitou fique em maiusculo op = toupper(op); printf ("\n\n\n"); //vai retorna o que o usuario escolheu return op; } //vai mostra a configuração em tela char configuração(char op2){ system ("PAUSE"); system ("cls"); printf ("\n\tEscolha o modo de jogo"); printf ("\n\tFacil (F)"); printf ("\n\tMedio (M)"); printf ("\n\tDificil (D)\n\n\n"); //vai ler a opcao que o usuario escolheu printf ("\t"); scanf (" %c",&op2); //vai fazer com que a letra que o usuario digitou fique em maiusculo op2 = toupper(op2); printf ("\n\n\n"); //vai retornar o que o usuario escolheu return op2; } //vai aparecer quando o usuario decidir sair do jogo void sair(char op2){ //vai imprimir a mensagem final printf ("\n\tVoce terminou o jogo"); printf ("\n\tMuito obrigada por jogar !!!"); } //vai mostra o campo de jogo fácil void fácil(char op2){ //declaracao de variaveis int matriz[20][20], matriz2[20][20], i, j, a, b; system ("PAUSE"); system ("cls"); printf ("\nBem vindo ao modo fácil\n\n\n"); //vai imprimir o campo fácil for (i=0 ; i < 10 ; i++){ for (j=0 ; j < 10 ;j++){ matriz[i][j] = 0; printf ("%5d",matriz[i][j]); } printf("\n"); } //Repeticao da leitura, checando a posicao e abrindo a posicao (ate cair em uma bomba) do{ ler_posicao(i, j); checar_posicao(i, j); abrir(i, j, 20); for (i=0 ; i < 10 ; i++){ for (j=0 ; j < 10 ;j++){ printf("%5d", matriz[i][j]); } printf("\n"); } }while(matriz[i][j] != 'b'); printf ("\n\n\n"); } //vai mostra o campo de jogo medio void medio(char op2){ //declaracao de variaveis int matriz[20][20], i, j; system ("PAUSE"); system ("cls"); printf ("\nBem vindo ao modo Medio\n\n\n"); //vai imprimir o campo medio for (i=0 ; i < 15 ; i++){ for (j=0 ; j < 15 ;j++){ matriz[i][j] = 0; printf ("%5d",matriz[i][j]); } printf("\n"); } printf ("\n\n\n"); } //vai mostra o campo de jogo difícil void difícil(char op2){ //declaracao de variaveis char matriz[20][20], i, j; system ("PAUSE"); system ("cls"); printf ("\nBem vindo ao modo difícil\n\n\n"); //vai imprimir o campo difícil for (i=0 ; i < 20 ; i++){ for (j=0 ; j < 20 ;j++){ matriz[i][j] = 0; printf ("%5d",matriz[i][j]); } printf("\n"); } printf ("\n\n\n"); } // *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-/// // distribuição das bombinhas void sorteiobombasfacil(int i,int j){ //tabuleiro fácil int bombaF = 10;//quantidade de bombas em um tabuleiro fácil char matriz[i][j];// inventei um mapa fácil das bombas aq while(bombaF < 10){ i = rand() % bombaF; j = rand() % bombaF; if(matriz[i][j] == 0){ bombaF --; }//fim do if }//fim do while }//fim do sorteiobombasfacil void sorteiobombasmedio(int i,int j){ //tabuleiro medio int bombaM = 40;//quantidade de bombas em um tabuleiro medio char matriz[i][j]; while(bombaM < 40){ i = rand() % bombaM; j = rand() % bombaM; if(matriz[i][j] == 0){ bombaM --; }//fim do if }//fim do while }//fim do sorteiobombasmedio void sorteiobombasdificil(int i,int j){ //tabuleiro difícil int bombaD = 99;//quantidade de bombas em um tabuleiro difícil char matriz[i][j]; while(bombaD < 99){ i = rand() % bombaD; j = rand() % bombaD; if(matriz[i][j] == 0){ bombaD --; }//fim do if }//fim do while }//fim do sorteiobombasdificil //////////////////////////////////////////:) void ler_posicao(int L, int C){ char posicao [tam][tam]; //leitura printf("Digite a linha que deseja:\n"); scanf("%d", &L); printf("Digite a coluna que deseja:\n"); scanf("%d", &C); } void checar_posicao(int L, int C){ char posicao[tam][tam]; //se nao for 'b', é porque não é uma bomba if(posicao[L][C] != 'b'){ posicao[L][C] = '*'; //se a posicao escolhida não for bomba, o '*' vai representá-la } else{ printf("voce caiu em uma bomba! Mais sorte da próxima vez :/\n");//se for uma bomba, será avisado } } //parte que acredito está dando mais erro int bandeiraganho(int bomba[i][j], int bandeirinha[i][j]){ if(bomb[i][j]==bandeirinha){ totaban++;//Conta para saber se acertou todas as bombas. } //Se acertou e finaliza jogo. if(totalban==bombaF){ printf("Parabens! voce ganhou!\n\n"); return 0; } } void sorteiobombasfacil(int i, int j)(int i,int j){ colocarban(int bomba, matriz[i][j]){ int bomba = 10;//quantidade de bombas em um tabuleiro char matriz[i][j];// inventei um mapa fácil das bombas aq while(bombaF < 10){ i = rand() % bombaF; j = rand() % bombaF; if(matriz[i][j] == 0){ bombaF --; }//fim do if }//fim do while }//fim do sorteiobombasfacil } //Kina_fd/+-+//Abrir e calcular o numero de bombas vizinhas int abrir(int i, int j, int m){//pos vai ser o valor selecionado //+-+-//vazio o valor de um lugar disponivel int mat_fechada[i][j]; int mat_aberta[i][j];//mostra a parte aberta da matriz aberta if(mat_fechada[i][j] == vazio){//verifica se a matriz aberta esta vazia mat_fechada[i][j] = mat_aberta[i][j];//troca a pocisão aberta na matriz ate onde não tem bomba } if(mat_fechada[i][j] == bomb)//se tiver bomba mostrar que perdeu o jogo { system("cls");//limpar printf("Perdeu"); system("pause"); } else{ return cont_bomb; } } //=-=-=--=-=-===-=-=-=-=-=-=-==-=-=-=-==-=-=-=-=-==-=-=-=-=-=-// int cont_bomb(int i, int j, int m){ int cont; int matCb[i][j]; for(i = 0;i < m; i++){ for(j = 0; j < m;j++){ if(i-1 >= 0){//verifica se exite a linha superior if(matCb[i-1][j] == bomb)cont++;//casa acima if(j-1 >= 0){//verifica se existe coluna da esquerda if(matCb[i-1][j-1] == bomb)cont++;//casa superior da esquerda } if(j+1 < m){//verifica se existe coluna da direita if(matCb[i-1][j+1] == bomb)cont++;//casa superior da direita } } //laterais if(j-1 >= 0){//verifica se a lateral esquerda existe if(matCb[i][j-1] == bomb)cont++;//casa da esquerda } if(j+1 < m){//verifica se a lateral direita existe if(matCb[i][j+1] == bomb)cont++;//casa da direita } //linha inferior if(i+1 < m){//verifica se a linha inferior existe if(matCb[i+1][j] == bomb)cont++;//casa debaixo if(j-1 >= 0){//verifica se existe coluna da esquerda if(matCb[i+1][j-1] == bomb)cont++;//casa inferior da esquerda } if(j+1 < m){//verifica se existe coluna da direita if(matCb[i+1][j+1] == bomb)cont++;//casa inferior da direita } } } } return cont;//mostra quantas bombas tem ao redor }<>

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!