skullcrazy Postado Agosto 19, 2019 Denunciar Share Postado Agosto 19, 2019 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"); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
skullcrazy
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");
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.