Ir ao conteúdo
  • Cadastre-se

João Gabriel Damasceno

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá, estou tentando fazer um jogo de batalha naval em C, porém no laço de repetição no final do programa onde o t tem que ir ate 30, que seria o numero de tentativas de jogadas ele não soma de um em um, pulando algumas repetições, por favor alguem pode me ajudar #include <stdio.h> #include <stdlib.h> #include <time.h> void gera_rand() { int stime; int ltime; ltime=time(NULL); stime=(unsigned) ltime/2; srand(stime); } void inicialtabuleiro(char tabuleiro[10][10]){ int i,j,k,cont=0,c=0,u=0,a=0,horizonta_vertical=0,segunda,terceira,quarta; for(i=0;i<10;i++){ //Inicia todas as posições do tabuleiro com "-" for(j=0;j<10;j++){ tabuleiro[j]='-'; } } for(i=0;i<3;i++){ do{ cont=0; j = rand() % 11; // sorteia uma posição da matriz para colocar um dos 3 barcos que ocupam tres posições cada k = rand() % 11; c= k+1; a= c-1; u= c+1; //printf("%d",j); //printf("%d",k); horizonta_vertical = rand() % 2; // verifica se a posição do barco vai ser na horizontal ou na vertical if(horizonta_vertical==0){ if(tabuleiro[j][k]=='-' && tabuleiro[j][c]=='-' && c<10 && u<10 &&tabuleiro[j]!='X' && tabuleiro[j][a]!='X'){ cont++; tabuleiro[j][k] = 'X'; tabuleiro[j][c] = 'X'; tabuleiro[j] = 'X'; } }else{ c= j+1; a= c-1; u= c+1; if(tabuleiro[j][k]=='-' && tabuleiro[c][k]=='-' && c<10 && u<10 &&tabuleiro[k]!='X' && tabuleiro[a][j]!='X'){ cont++; tabuleiro[j][k] = 'X'; tabuleiro[j+1][k] = 'X'; tabuleiro[j+2][k] = 'X'; } } }while(cont==0); } for(i=0;i<1;i++){ do{ cont=0; j = rand() % 11; // sorteia uma posição da matriz para colocar um dos 3 barcos que ocupam tres posições cada k = rand() % 11; c= k+1; segunda = c+1; terceira = segunda + 1; quarta = terceira + 1; u= quarta+1; a= c-1; //printf("%d",j); //printf("%d",k); horizonta_vertical=rand() % 2; // verifica se a posição do barco vai ser na horizontal ou na vertical if(horizonta_vertical==0){ if(tabuleiro[j][k]=='-' && tabuleiro[j][c]=='-' && tabuleiro[j][segunda]=='-'&& tabuleiro[j][terceira]=='-'&& tabuleiro[j][quarta]=='-' && tabuleiro[j]=='-' && u<10){ cont++; tabuleiro[j][k]='A'; tabuleiro[j][c]='A'; tabuleiro[j][segunda]='A'; tabuleiro[j][terceira]='A'; tabuleiro[j][quarta]='A'; tabuleiro[j]='A'; } }else{ c= j+1; segunda = c+1; terceira = segunda + 1; quarta = terceira + 1; u= quarta+1; a= c-1; if(tabuleiro[j][k]=='-' && tabuleiro[c][k]=='-' && tabuleiro[segunda][k]=='-'&& tabuleiro[terceira][k]=='-'&& tabuleiro[quarta][k]=='-' && tabuleiro[k]=='-' && u<10){ cont++; tabuleiro[j][k]='A'; tabuleiro[c][k]='A'; tabuleiro[segunda][k]='A'; tabuleiro[terceira][k]='A'; tabuleiro[quarta][k]='A'; tabuleiro[k]='A'; } } }while(cont==0); } for(i=0;i<3;i++){ // coloca na matriz os tres submarinos do{ cont=0; j = rand() % 11; k = rand() % 11; a= c-1; c= k+1; u= c+1; //printf("%d",j); //printf("%d",k); if(tabuleiro[j][k]=='-' && tabuleiro[j][c]=='-' && c<10 && tabuleiro[j]!='X' && tabuleiro[j][a]!='X'){ cont++; tabuleiro[j][k] = 'O'; } }while(cont==0); } //A portir daqui apenas identa o tabuleiro } void printartabuleiro(char matriz[10][10]){ int i,k,j; system("cls"); printf("BATALHA NAVAL\n"); printf(" "); for(i=1;i<=10;i++) printf("%d ", i); printf("\n"); for(k=65,i=0;k<= 74;k++,i++){ printf("%c ",k); for(j=0;j<10;j++){ printf("%c ", matriz[j]); } printf("\n\n"); } } int main(){ int linha,coluna,i,j,k,jogada=0,t,venceu=0; char matriz[10][10],tabuleiro[10][10],l; gera_rand(); printf("---voce tem 30 tentativas para derrubar 3 submarinos, 3 barcos e 1 cargueiro da tropa inimiga\n"); printf("---Cada submarino ocupa um espaço\n"); printf("---Cada barco ocupa tres espaços\n"); printf("---O cargueiro ocupa um espaço\n"); for(i=0;i<10;i++){ //Inicia todas as posições do tabuleiro com "-" for(j=0;j<10;j++){ matriz[j]='-'; } } inicialtabuleiro(tabuleiro); printartabuleiro(matriz); //A portir daqui apenas identa o tabuleiro t=0; for(t=0;t<30;t++){ printf("JOGADA %d \n", t); printf("Digite a coordenada\n"); scanf("%c %d", &l, &coluna); coluna= coluna - 1; if(l=='A') linha=0; if(l=='B') linha=1; if(l=='C') linha=2; if(l=='D') linha=3; if(l=='E') linha=4; if(l=='F') linha=5; if(l=='G') linha=6; if(l=='H') linha=7; if(l=='I') linha=8; if(l=='J') linha=9; if(tabuleiro[linha][coluna]!='-'){ matriz[linha][coluna]=tabuleiro[linha][coluna]; } printf("\n\n\n"); printartabuleiro(matriz); } //verifica se o jogador ganhou for(i=0;i<10;i++){ for(j=0;j<10;j++){ if(matriz[j]=='-'){ matriz[j]='I'; } if(matriz[j]==tabuleiro[j]){ venceu++; } } } if(venceu==17){ printf("Parabens, voce eliminou a tropa inimiga!"); }else{ printf("Gracas a voce a tropa inimiga nos destruiu!"); } return(0); }

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