estou tentando fazer um sistema de dicas, poporémrem não estar funcionando.
porfavor help-me
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
//#include "/storage/emulated/0/calculos/Numeros primos/Batalha Naval/test.h"
#define Qnavios 9
#define chances Qnavios + 2
void DicaMatriz(int dica[10][5])
{
int linha, coluna, j;
for (linha = 0; linha < 10; linha++)
{
for (coluna = 0; coluna < 5; coluna++)
{
if (dica[linha][coluna] == 1)
{
j = coluna;
switch (linha + coluna)
{
case 2:
//coluna 1, linha 1
printf("A");
break;
case 3:
//coluna 1, linha 2
if(coluna == 1)
printf("B");
//coluna 2, linha 1
if(coluna == 2)
printf("C");
break;
case 4:
//coluna 1, linha 3
if(coluna == 1)
printf("D");
//coluna 2, linha 2
if(coluna == 2)
printf("E");
//coluna 3, linha 1
if(coluna == 3)
printf("F");
break;
case 5:
//coluna 1, linha 4
if(coluna == 1)
printf("G");
//coluna 2, linha 3
if(coluna == 2)
printf("H");
//coluna 3, linha 2
if(coluna == 3)
printf("I");
//coluna 4, linha 1
if(coluna == 4)
printf("J");
break;
case 6:
//coluna 1, linha 5
if(coluna == 1)
printf("K");
//coluna 2, linha 4
if(coluna == 2)
printf("L");
//coluna 3, linha 3
if(j == 3)
printf("M");
//coluna 4, linha 2
if(j == 4)
printf("");
//coluna 5, linha 1
if(j == 5)
printf("N");
break;
case 7:
//coluna 1, linha 6
if(j == 1)
printf("O");
//coluna 2, linha 5
if(j == 2)
printf("P");
//coluna 3, linha 4
if(j == 3)
printf("Q");
//coluna 4, linha 3
if(j == 4)
printf("R");
//coluna 5, linha 2
if(j == 2)
printf("S");
break;
case 8:
//coluna 1, linha 7
if(j == 1)
printf("T");
//coluna 2, linha 6
if(j == 2)
printf("U");
//coluna 3, linha 5
if(j == 3)
printf("V");
//coluna 4, linha 4
if(j == 4)
printf("W");
//coluna 5, linha 3
if(j == 5)
printf("X");
break;
case 9:
//coluna 1, linha 8
if(j == 1)
printf("Y");
//coluna 2, linha 7
if(j == 2)
printf("Z");
//coluna 3, linha 6
if(j == 3)
printf("a");
//coluna 4, linha 5
if(j == 4)
printf("b");
//coluna 5, linha 4
if(j == 5)
printf("c");
break;
case 10:
//coluna 1, linha 9
if(j == 1)
printf("d");
//coluna 2, linha 8
if(j == 2)
printf("e");
//coluna 3, linha 7
if(j == 2)
printf("f");
//coluna 4, linha 6
if(j == 4)
printf("g");
//coluna 5, linha 5
if(j == 5)
printf("h");
case 11:
//coluna 1, linha 10
if(j == 1)
printf("i");
//coluna 2, linha 9
if(j == 2)
printf("j");
//coluna 3, linha 8
if(j == 3)
printf("k");
//coluna 4, linha 7
if(j == 4)
printf("l");
//coluna 5, linha 6
if(j == 5)
printf("m");
break;
case 12:
//coluna 2, linha 10
if(j == 2)
printf("n");
//coluna 3, linha 9
if(j == 3)
printf("o");
break;
//coluna 4, linha 8
if(j == 5)
printf("p");
break;
//coluna 5, linha 7
if(j == 5)
printf("q");
break;
case 13:
//coluna 3, linha 10
if(j == 3)
printf("r");
break;
//coluna 4, linha 9
if(j == 4)
printf("s");
break;
//coluna 5, linha 8
if(j == 5)
printf("t");
break;
case 14:
//coluna 4, linha 10
if(j == 4)
printf("u");
break;
//coluna 5, linha 9
if(j == 5)
printf("v");
case 15:
//coluna 5, linha 10
printf("w");
};
}
};
}
}
void inicializaTabuleiro(int tabuleiro[][5])
{
int linha, coluna;
for (linha = 0; linha < 10; linha++)
for (coluna = 0; coluna < 5; coluna++)
tabuleiro[linha][coluna] = -1;
}
void mostraTabuleiro(int tabuleiro[10][5], int x)
{
int linha, coluna;
clrscr();
textcolor(x + 1);
printf("PLAYER %i\n", x);
printf("\t1 \t2 \t3 \t4 \t5\n");
textcolor(0);
printf("\n");
for (linha = 0; linha < 10; linha++)
{
textcolor(x + 1);
printf("%d", linha + 1);
textcolor(0);
for (coluna = 0; coluna < 5; coluna++)
{
if (tabuleiro[linha][coluna] == -1)
{
textcolor(BLUE);
printf("\t~");
textcolor(WHITE);
}
else if (tabuleiro[linha][coluna] == 0)
{
// textbackground(9);
textcolor(RED);
printf("\t*");
textbackground(BLACK);
textcolor(WHITE);
}
else if (tabuleiro[linha][coluna] == 1)
{
textbackground(BLUE);
textcolor(RED);
printf("\t#");
textbackground(0);
textcolor(WHITE);
}
}
printf("\n");
if(tabuleiro[linha][coluna] == 1){
if(coluna == 2){
printf("nddnshshshsh");
}
}
}
printf("\nLegendas:\n~ de cor azul, água\n* de cor vermelha, tiro na água\nX de cor verde, navio\nAtençao você só terá %i tentativas.\n\n", chances);
printf("DICAS:\n");
void DicaMatriz(tabuleiro[10][5]);
}
void iniciaNavios(int navios[][2])
{
srand(time(NULL));
int navio, anterior;
for (navio = 0; navio < Qnavios; navio++)
{
navios[navio][0] = (rand() % 9) + 1;
navios[navio][1] = (rand() % 4) + 1;
//agora vamos checar se esse par não foi sorteado
//se foi, so sai do do...while enquanto sortear um diferente
for (anterior = 0; anterior < navio; anterior++)
{
if ((navios[navio][0] == navios[anterior][0]) && (navios[navio][1] == navios[anterior][1]))
do
{
navios[navio][0] = (rand() % 9) + 1;
navios[navio][1] = (rand() % 4) + 1;
} while ((navios[navio][0] == navios[anterior][0]) && (navios[navio][1] == navios[anterior][1]));
}
}
}
void darTiro(int tiro[2])
{
printf("Linha: ");
scanf("%d", &tiro[0]);
tiro[0]--;
printf("Coluna: ");
scanf("%d", &tiro[1]);
tiro[1]--;
}
int acertou(int tiro[2], int navios[][2])
{
int navio;
for (navio = 0; navio < Qnavios; navio++)
{
if (tiro[0] == navios[navio][0] && tiro[1] == navios[navio][1])
{
return 1;
}
}
return 0;
}
void alteraTabuleiro(int tiro[2], int navios[][2], int tabuleiro[][5])
{
if (acertou(tiro, navios) == 1)
tabuleiro[tiro[0]][tiro[1]] = 1;
else
tabuleiro[tiro[0]][tiro[1]] = 0;
}
int main()
{
int PontoA = 0;
int PontoB = 0;
int jogador1(void);
system("cls");
int jogador2(void);
PontoA = jogador1();
PontoB = jogador2();
if(PontoA > PontoB){
printf("Jogador1 venceu com %i pontos", PontoA);
} else if(PontoA < PontoB){
printf("Jogador2 venceu com %i pontos", PontoB);
} else
printf("Parabéns aos jogadores, deu IMPATE!");
}
int jogador1(void){
int tabuleiro[10][5];
int navios[Qnavios][2];
int tiro[2];
int acertos = 0, tentativas = 0;
inicializaTabuleiro(tabuleiro);
iniciaNavios(navios);
printf("\n");
do
{
mostraTabuleiro(tabuleiro, 1);
DicaMatriz(tabuleiro[10][5]);
darTiro(tiro);
tentativas++;
if(acertou(tiro, navios) == 1)
++acertos;
if(tentativas == chances && acertos < chances || tentativas == chances && acertos == chances)
{
//delay(4000);
clrscr();
return acertos;
}
alteraTabuleiro(tiro, navios, tabuleiro);
//acertos = acertos + acertou(tiro[2], navios[][2]);
} while (acertos != chances);
mostraTabuleiro(tabuleiro, 1);
printf("\n");
}
//------------------------------
int jogador2(void){
int tabuleiro[10][5];
int navios[Qnavios][2];
int tiro[2];
int acertos = 0, tentativas = 0;
inicializaTabuleiro(tabuleiro);
iniciaNavios(navios);
printf("\n");
do
{
mostraTabuleiro(tabuleiro, 2);
darTiro(tiro);
tentativas++;
if(acertou(tiro, navios) == 1)
++acertos;
if(tentativas == chances && acertos < chances || tentativas == chances && acertos == chances)
{
getchar();
clrscr();
return acertos;
}
alteraTabuleiro(tiro, navios, tabuleiro);
} while (acertos != chances);
mostraTabuleiro(tabuleiro, 2);
printf("\n");
}