Logo Hardware.com.br
TiMo
TiMo Novo Membro Registrado
6 Mensagens 0 Curtidas

Batalha Naval

#1 Por TiMo 16/06/2015 - 10:36
Preciso criar um jogo de Batalha Naval, o jogo já está rodando mas tem umas coisas que não consigo implementar, como:

O jogo tem que ter 4 navios pro usuario e pro computador, mas os navios tem de ocupar 2 células cada na horizontal.
Dois arquivos devem ser informados pelo usuário. Os arquivos deverão conter as posições dos navios do usuário e do computador.
Cada linha do arquivo deve informar a posição de um navio. Por exemplo, para definir as posições dos navios apresentados na Figura 1, teríamos um arquivo com o seguinte formato:
A1 A2
B4 B5
C1 C2
E3 E4

● Dica
 O usuário informa uma posição e o programa indica se existe algum navio na linha ou coluna informada (No máximo 3 dicas por jogo).


Se alguém puder me ajudar, agradeço. Segue o programa até agora em anexo tbm:

[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]

int main ()
{
char mata [5][5], matb [5][5],matc[5][5],matd[5][5];
srand (time(NULL));
system ("color 1f");

int i,j,linha,col,z,cont=0,contpc=0,ale,contale=0;
printf ("\nDeseja Inserir os barcos Aleatoriamente? 1)Sim 0)Nao\n");
scanf ("%d",&ale);

// MATRIZ JOGADOR --------------------------------------------------------------
printf ("Matriz Jogador: \n\n");
// Deixando todas matrizes com o caracter 'x'
for (i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
mata[j] = 'x';
matb[j] = 'x';
matc[j] = 'x';
matd[j] = 'x';
}
}
// testando matriz
printf (" A B C D E\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);
}
printf ("\n");
}

// INSERINDO BARCOS -------------------------------------------------------
if (ale==1)
{
// INSERINDO BARCOS ALEATORIAMENTE ------------------------------------------------------------

while (contale< 4)
{
linha = rand() %5;
col = rand() %5;
if (matb [linha][col] == 'B')
{
printf ("-");
}
else
{
matb [linha][col] = 'B';
contale ++;
}
}
printf ("\n\n --------- Posicao dos Seus Barcos -------- \n\n");
printf (" A B C D E\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", matb[j]);
}
printf ("\n");
}
system ("pause");
}
else
{

for (z=0;z<4;z++)
{
printf ("\nInsira o Barco n %d: \n", z+1);
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
//Verificando se é uma cordenada valida
while ((linha <= 0 || linha >5) || (col <= 0 || col >5))
{
printf ("Valor Invalido! Digite outro!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("letra da Coluna: ");
scanf ("%d", &col);
while (matb[linha-1][col-1] == 'B')
{
printf ("Voce ja iseriu um barco ai! Digite outra Cordenada!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("letra da Coluna: ");
scanf ("%d", &col);
}
}
//Verificando se ja iseriu um barco na cordenada
while (matb[linha-1][col-1] == 'B')
{
printf ("Voce ja iseriu um barco ai! Digite outra Cordenada!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("letra da Coluna: ");
scanf ("%d", &col);
while ((linha <= 0 || linha >5) || (col <= 0 || col >5))
{
printf ("Valor Invalido! Digite outro!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("letra da Coluna: ");
scanf ("%d", &col);
}
}
system("cls");
matb [linha-1][col-1] = 'B';
printf ("\n\n --------- Posicao dos Seus Barcos -------- \n\n");
printf (" 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", matb[j]);
}
printf ("\n");
}
}
}

// INSERINDO BARCOS PC ------------------------------------------------------------

int contb=0;
while (contb< 4)
{
linha = rand() %5;
col = rand() %5;
if (matd [linha][col] == 'B')
{
printf ("-"); // só pra poder verificar quando pc atira no mesmo lugar
}
else
{
matd [linha][col] = 'B';
contb ++;
}
}

//------------------------ TESTE IMPRIMINDO BARCOS DO PC
system("cls");
printf ("\n\n --------- Posicao dos Barcos PC para verificacao -------- \n\n");
printf (" A B C D E\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", matd[j]);
}
printf ("\n");
}
// ---------------------- tabuleiro --------------------------

printf ("\n Seu Campo\t Campo PC\n");
printf (" A B C D E\t A B C D E\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}

//EU ATIRANDO ----------------------------------------------------------------------------
int numtiro=0,numtiropc=0;
// while para controlar o encerramento do jogo
while (cont < 5 || contpc < 5)
{
int tiro =0,tiropc =0;
while (tiro<=0)
{
printf ("\nSua vez de atirar!\n");
printf ("\nCordenadas do Tiro: \n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);

// Verificando se já atirou na cordenada
while (matc[linha-1][col-1] == '1' || matc[linha-1][col-1] == '0')
{
printf ("\nVoce ja atirou neste local\n");
printf ("Escolha outra cordenada\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
while ((linha <= 0 || linha >5) || (col <= 0 || col >5))
{
printf ("Valor Invalido! Digite outro!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
}
}
// Verificando se é uma cordenada valida
while ((linha <= 0 || linha >5) || (col <= 0 || col >5))
{
printf ("Valor Invalido! Digite outro!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
while (matc[linha-1][col-1] == '1' || matc[linha-1][col-1] == '0')
{
printf ("\nVoce ja atirou neste local\n");
printf ("Escolha outra cordenada\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
}
}
system ("cls");

//Consultando se errou ou acertou o tiro
if (matd[linha-1][col-1] == 'x')
{
matc [linha-1][col-1] = '0';
tiro=1;
numtiro++;
system("cls");
printf ("\nVoce errou o Tiro!\n");
printf ("Voce ja acertou %d de 10 navios", cont);
printf ("\nNumero de Tiros Jogador: %d\n",numtiro);

//onde vc atirou

printf ("\nSeu tiro: \n");
printf ("Cordenadas do seu tiro.\nLinha: %d Coluna: %d\n",linha,col);
printf ("\n Seu Campo\t Campo PC\n");
printf (" A B C D E\t A B C D E\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}

system ("pause");
system ("cls");

}
else
{
numtiro++;
system("cls");
matc [linha-1][col-1] = '1';
tiro=0;
cont++;
system ("color 4f");
system ("color 8c");
printf ("\nVoce acertou o Tiro! Jogue Novamente!\n");
system ("color 1f");
printf ("Voce ja acertou %d de 10 navios", cont);
printf ("\nNumero de Tiros Jogador: %d\n",numtiro);


printf ("\nSeu tiro: \n");
printf ("Cordenadas do seu tiro.\nLinha: %d Coluna: %d\n",linha,col);
printf ("\n Seu Campo\t Campo PC\n");
printf (" 1 2 3 4 5\t 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}

system ("pause");


// Encerrando jogo quando você ganhou
if (cont==10)
{

printf ("\nVoce Ganhou o Jogo! Parabens!\n");
printf ("Voce Atirou %d tiros e Pc Atirou %d tiros\n",numtiro,numtiropc);
system ("pause");
return 0;
}
}
}


// PC ATIRANDO --------------------------------------------

while (tiropc<=0)
{
//pc atirando aleatoriamente
linha = rand() %5;
col = rand() %5;
// caso pc atire no mesmo local
while (mata[linha][col] == '0' || mata[linha][col] == '1')
{
linha = rand() %5;
col = rand() %5;
}
//verificando se pc acertou ou errou o tiro
if (matb[linha][col] == 'x')
{
numtiropc++;
mata [linha][col] = '0';
tiropc=1;

printf ("\nPC errou o Tiro!\n");
printf ("O PC ja acertou %d de 10 navios", contpc);
printf ("\nNumero de Tiros PC: %d\n",numtiropc);
//imprimindo tiro
printf ("\nOnde o pc atirou: \n");
printf ("Linha: %d Coluna: %d\n", linha+1,col+1);
printf ("\n Seu Campo\t Campo PC\n");
printf (" 1 2 3 4 5\t 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}
system ("pause");


}
else
{
numtiropc++;
mata [linha][col] = '1';
tiropc=0;
contpc++;

system ("color 4f");
system ("color 8c");
system("cls");
printf ("\nPC acertou o Tiro!\n");
printf ("O PC ja acertou %d de 10 navios", contpc);
printf ("\nNumero de Tiros PC: %d\n",numtiropc);
system ("color 1f");
//imprimindo tiro
printf ("\nOnde o pc atirou: \n");
printf ("Linha: %d Coluna: %d\n", linha+1,col+1);
printf ("\n Seu Campo\t Campo PC\n");
printf (" 1 2 3 4 5\t 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}
system ("pause");
system ("cls");


}
// Encerrando o jogo pq PC ganhou
if (contpc==10)
{
printf ("\nVoce Perdeu o Jogo!\n");
printf ("Voce Atirou %d tiros e Pc Atirou %d tiros\n",numtiro,numtiropc);
system ("pause");
return 0;
}

}
}
system ("pause");
}

Anexos

tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#2 Por tpcvasco
16/06/2015 - 14:37
Fica meio difícil de te ajudar assim, vc tem q ser mais específico no seu pedido de ajuda.
Vc praticamente deu o enunciado, mostrou oq fez, e falou "não tó conseguindo, me ajudaí".
Não tá conseguindo o quê? Onde vc está empacado? oq vc queria fazer e não tá conseguindo? Vá um problema de cada vez.

Pra começar, esse seu programa nem compila se vc não trocar conio.h por time.h .....
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
TiMo
TiMo Novo Membro Registrado
6 Mensagens 0 Curtidas
#3 Por TiMo
17/06/2015 - 10:59
tpcvasco disse:
Fica meio difícil de te ajudar assim, vc tem q ser mais específico no seu pedido de ajuda.
Vc praticamente deu o enunciado, mostrou oq fez, e falou "não tó conseguindo, me ajudaí".
Não tá conseguindo o quê? Onde vc está empacado? oq vc queria fazer e não tá conseguindo? Vá um problema de cada vez.

Pra começar, esse seu programa nem compila se vc não trocar conio.h por time.h .....



O Programa tá compilando e rodando normal aqui com conio.h . A questão de ocupar duas células eu consegui quando ele dá os barcos aleatoriamente, mass quando colocaa pra inserir manualmente não consegui , não tô conseguindo a parte do programa dar até 3 dicas pro jogo.

● Dica
 O usuário informa uma posição e o programa indica se existe algum navio na linha ou coluna informada (No máximo 3 dicas por jogo).
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#4 Por tpcvasco
17/06/2015 - 11:17
Para "inserir manualmente" vc precisa ler os arquivos q são fornecidos pelo usuário. É essa sua dúvida, vc não sabe ler arquivo? Se a sua dúvida é essa, leia isso
http://web.archive.org/web/20071012105112/http://equipe.nce.ufrj.br/adriano/c/apostila/es.htm

Pq vc tem tantas matrizes (mata, matb,matc,matd)? Ficaria mais fácil se vc usasse nomes de variáveis explicativos para cada uma.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
TiMo
TiMo Novo Membro Registrado
6 Mensagens 0 Curtidas
#5 Por TiMo
17/06/2015 - 11:32
tpcvasco disse:
Para "inserir manualmente" vc precisa ler os arquivos q são fornecidos pelo usuário. É essa sua dúvida, vc não sabe ler arquivo? Se a sua dúvida é essa, leia isso
http://web.archive.org/web/20071012105112/http://equipe.nce.ufrj.br/adriano/c/apostila/es.htm

Pq vc tem tantas matrizes (mata, matb,matc,matd)? Ficaria mais fácil se vc usasse nomes de variáveis explicativos para cada uma.


As matrizzes são para traansformar em x no tabuleiro. O arquivo tô tentando ver como faz aqui, tennho que abrir e eescrever e ele tem que passar pro programa né?
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#6 Por tpcvasco
17/06/2015 - 11:54
TiMo disse:
As matrizzes são para traansformar em x no tabuleiro.


A meu ver, em um jogo de batalha naval vc só precisaria de 2 tabuleiros, um para cada jogador (no seu caso, 1 do usuário e 1 do pc).
Mas mesmo q vc tivesse 20 tabuleiros, aprenda desde cedo a colocar nomes claros e explicativos nas suas variáveis. Vc pode não achar tão importante agora, afinal é provavelmente um projeto de faculdade só seu, mas qdo vc tiver trabalhando com isso, outras pessoas tb vão colocar a mão no seu código, e não vão entender oq é mata,matb,matc,matd ......
Aliás, até mesmo pra vc, experimente ler esse código depois de ficar 1 ano sem mexê-lo...

TiMo disse:
O arquivo tô tentando ver como faz aqui, tennho que abrir e eescrever e ele tem que passar pro programa né?


A princípio não precisaria escrever no arquivo, só ler e obter as informações da forma correta para seu programa.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
TiMo
TiMo Novo Membro Registrado
6 Mensagens 0 Curtidas
#7 Por TiMo
17/06/2015 - 12:07
tpcvasco disse:
A meu ver, em um jogo de batalha naval vc só precisaria de 2 tabuleiros, um para cada jogador (no seu caso, 1 do usuário e 1 do pc).
Mas mesmo q vc tivesse 20 tabuleiros, aprenda desde cedo a colocar nomes claros e explicativos nas suas variáveis. Vc pode não achar tão importante agora, afinal é provavelmente um projeto de faculdade só seu, mas qdo vc tiver trabalhando com isso, outras pessoas tb vão colocar a mão no seu código, e não vão entender oq é mata,matb,matc,matd ......
Aliás, até mesmo pra vc, experimente ler esse código depois de ficar 1 ano sem mexê-lo...



A princípio não precisaria escrever no arquivo, só ler e obter as informações da forma correta para seu programa.

Como assim? eu não teria que escrever pra definir as posições não? Já leria com as informações pré definidas?
TiMo
TiMo Novo Membro Registrado
6 Mensagens 0 Curtidas
#8 Por TiMo
17/06/2015 - 12:11
Vou postar como está o programa atualizado:

[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]

int main ()
{
char mata [5][5], matb [5][5],matc[5][5],matd[5][5];
srand (time(NULL));
system ("color 1f");

int i,j,linha,col,z,cont=0,contpc=0,ale,contale=0;
printf ("\nDeseja Inserir os barcos Aleatoriamente? 1)Sim 0)Nao\n");
scanf ("%d",&ale);

// MATRIZ JOGADOR --------------------------------------------------------------
printf ("Matriz Jogador: \n\n");
// Deixando todas matrizes com o caracter 'x'
for (i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
mata[j] = 'x';
matb[j] = 'x';
matc[j] = 'x';
matd[j] = 'x';
}
}


// Inserindo Barcos -------------------------------------------------------
if (ale==1)
{
while (contale< 4) //barcos aleatórios
{
linha = rand() % 5;
col = rand() % 5;
if (matb [linha][col] == 'B')
{
printf ("-");
}
else if(col== 4)
{
col=3;
}
else
{
matb [linha][col]= 'B';
matb [linha][(col+ 1)]= 'B';
contale ++;
}
}

printf ("\n\n --------- Posicao dos Seus Barcos -------- \n\n");
printf (" 1 2 3 4 5\n");

for (i=0;i<5;i++)
{
printf (" %c ",'A'+ i);
for (j=0;j<5;j++)
{
printf (" %c ", matb[j]);
}
printf ("\n");
}

system ("pause");
}

else
{
for (z=0;z<8;z++)
{
printf ("\n Insira o Barco n %d: \n", z+1);
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);

//Verificando se é uma cordenada valida
while ((linha <= 0 || linha >5) || (col <= 0 || col >5))
{
printf ("Valor Invalido! Digite outro!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
while (matb[linha-1][col-1] == 'B')
{
printf ("Voce ja iseriu um barco ai! Digite outra Cordenada!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
}
}

//Verificando se ja iseriu um barco na cordenada
while (matb[linha-1][col-1] == 'B')
{
printf ("Voce ja iseriu um barco ai! Digite outra Cordenada!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
while ((linha <= 0 || linha >5) || (col <= 0 || col >5))
{
printf ("Valor Invalido! Digite outro!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
}
}
system("cls");
matb [linha-1][col-1] = 'B';
printf ("\n\n --------- Posicao dos Seus Barcos -------- \n\n");
printf (" 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %c ",'A'+i);
for (j=0;j<5;j++)
{
printf (" %c ", matb[j]);
}
printf ("\n");
}
}
}

// INSERINDO BARCOS PC ------------------------------------------------------------

int contb=0;
while (contb< 4)
{
linha = rand() %5;
col = rand() %5;
if (matd [linha][col] == 'B')
{
printf ("-"); // só pra poder verificar quando pc atira no mesmo lugar
}
else if(col==4)
{
col=3;
}
else
{
matd [linha][col] = 'B';
matd [linha][(col+1)]= 'B';
contb ++;
}
}

// ---------------------- tabuleiro --------------------------

printf ("\n Seu Campo\t Campo PC\n");
printf (" 1 2 3 4 5\t 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %c ",'A'+i);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}

//EU ATIRANDO ----------------------------------------------------------------------------
int numtiro=0,numtiropc=0;
// while para controlar o encerramento do jogo
while (cont < 8 || contpc < 8)
{
int tiro =0,tiropc =0;
while (tiro<=0)
{
printf ("\nSua vez de atirar!\n");
printf ("\nCordenadas do Tiro: \n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);

// Verificando se já atirou na cordenada
while (matc[linha-1][col-1] == '1' || matc[linha-1][col-1] == '0')
{
printf ("\nVoce ja atirou neste local\n");
printf ("Escolha outra cordenada\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
while ((linha <= 0 || linha >5) || (col <= 0 || col >5))
{
printf ("Valor Invalido! Digite outro!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
}
}
// Verificando se é uma cordenada valida
while ((linha <= 0 || linha >5) || (col <= 0 || col >5))
{
printf ("Valor Invalido! Digite outro!\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
while (matc[linha-1][col-1] == '1' || matc[linha-1][col-1] == '0')
{
printf ("\nVoce ja atirou neste local\n");
printf ("Escolha outra cordenada\n");
printf ("Numero da Linha: ");
scanf ("%d", &linha);
printf ("Numero da Coluna: ");
scanf ("%d", &col);
}
}
system ("cls");

//Consultando se errou ou acertou o tiro
if (matd[linha-1][col-1] == 'x')
{
matc [linha-1][col-1] = '0';
tiro=1;
numtiro++;
system("cls");
printf ("\nVoce errou o Tiro!\n");
printf ("Voce ja acertou %d de 8 navios", cont);
printf ("\nNumero de Tiros Jogador: %d\n",numtiro);

//onde vc atirou

printf ("\nSeu tiro: \n");
printf ("Cordenadas do seu tiro.\nLinha: %d Coluna: %d\n",linha,col);
printf ("\n Seu Campo\t Campo PC\n");
printf (" 1 2 3 4 5\t 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %c ",'A'+i);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %d ",i+1);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}

system ("pause");
system ("cls");

}
else
{
numtiro++;
system("cls");
matc [linha-1][col-1] = '1';
tiro=1;
cont++;
system ("color 4f");
system ("color 8c");
printf ("\nVoce acertou o Tiro!\n");
system ("color 1f");
printf ("Voce ja acertou %d de 8 navios", cont);
printf ("\nNumero de Tiros Jogador: %d\n",numtiro);


printf ("\nSeu tiro: \n");
printf ("Cordenadas do seu tiro.\nLinha: %d Coluna: %d\n",linha,col);
printf ("\n Seu Campo\t Campo PC\n");
//conta quantos navios há na linha tiro[0]
for(i=0 ; i<5 ; i++){
if(matb[linha][col]==0)
linha++;
if(matb[linha][col]==1)
col++;
}

printf("\n linha %d -> \n coluna %d -> %d navios\n",linha, col,cont);
printf (" 1 2 3 4 5\t 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %c ",'A'+i);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %c ",'A'+ i);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}

system ("pause");


// Encerrando jogo quando você ganhou
if (cont==8)
{

printf ("\nVoce Ganhou o Jogo! Parabens!\n");
printf ("Voce Atirou %d tiros e Pc Atirou %d tiros\n",numtiro,numtiropc);
system ("pause");
return 0;
}
}
}


// PC ATIRANDO --------------------------------------------

while (tiropc<=0)
{
//pc atirando aleatoriamente
linha = rand() %5;
col = rand() %5;
// caso pc atire no mesmo local
while (mata[linha][col] == '0' || mata[linha][col] == '1')
{
linha = rand() %5;
col = rand() %5;
}
//verificando se pc acertou ou errou o tiro
if (matb[linha][col] == 'x')
{
numtiropc++;
mata [linha][col] = '0';
tiropc=1;

printf ("\nPC errou o Tiro!\n");
printf ("O PC ja acertou %d de 8 navios", contpc);
printf ("\nNumero de Tiros PC: %d\n",numtiropc);

//imprimindo tiro
printf ("\n Onde o pc atirou: \n");
printf ("Linha: %d Coluna: %d\n", linha+1,col+1);
printf ("\n Seu Campo\t Campo PC\n");
printf (" 1 2 3 4 5\t 1 2 3 4 5\n");
for (i=0;i<5;i++)
{
printf (" %c ",'A'+i);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %c ",'A'+i);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}
system ("pause");


}
else
{
numtiropc++;
mata [linha][col] = '1';
tiropc=1;
contpc++;

system ("color 4f");
system ("color 8c");
system("cls");
printf ("\nPC acertou o Tiro!\n");
printf ("O PC ja acertou %d de 8 navios", contpc);
printf ("\nNumero de Tiros PC: %d\n",numtiropc);
system ("color 1f");

//imprimindo tiro
printf ("\n Onde o pc atirou: \n");
printf ("Linha: %d Coluna: %d\n", linha+1,col+1);
printf ("\n Seu Campo\t Campo PC\n");
printf (" 1 2 3 4 5\t 1 2 3 4 5\n");

for (i=0;i<5;i++)
{
printf (" %c ",'A'+i);
for (j=0;j<5;j++)
{
printf (" %c ", mata[j]);

}
printf ("\t ");
printf (" %c ",'A'+i);
for (j=0;j<5;j++)
{
printf (" %c ",matc[j]);
}
printf ("\n");
}
system ("pause");
system ("cls");


}
// Encerrando o jogo pq PC ganhou
if (contpc==8)
{
printf ("\nVoce Perdeu o Jogo!\n");
printf ("Voce Atirou %d tiros e Pc Atirou %d tiros\n",numtiro,numtiropc);
system ("pause");
return 0;
}

}
}
system ("pause");
}
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#10 Por tpcvasco
17/06/2015 - 14:16
TiMo disse:
Como assim? eu não teria que escrever pra definir as posições não? Já leria com as informações pré definidas?


Vc teria q escrever *o* arquivo, mas apenas uma vez, vc não teria q escrever nele programaticamente (dentro do seu código C). Seria um arquivo de entrada, um arquivo do "usuário". A partir do momento q ele existe, dentro do código vc só precisa ler.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal