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