computaTentativas
to be tested if it does not hit every sequence (has 10 tries) but hit A number in a correct position must return in the positions of the left side of the matrix 4x the number 1, CASE hit a number but it is not in the correct position of vet[z]
it must return in the positions of the left side of the matrix 4x the number 2, CASE does not hit neither a number or position, it leaves in the line of the left side of the matrix 4x the number 0.
The problem lies between lines 90 and 123,
I'm asking for help I'm a beginner in C and as you can see from the topic I've been doing this for some time xd p>Edit: I tried to create another for when entering in the if and else but also is not working ... #HELP
Edit 2: now it is affecting only the correct line, but I do not know how to do the tests .... :(
#include <stdio.h>
#include <stdlib.h>
#include <conio.h> // Biblioteca para adicionar cores
#define L 10 // Numero de Linhas da matriz
#define C 8 // Numero de Colunas da matriz
#define TAM 4 // Tamanho do vetor vet que armazenará a senha gerada aleatoriamente
void sorteio(int vet[TAM]) // Funcao que sorteia os numeros aleatorios
{
int x;
srand((unsigned)time(NULL));
for (x = 0; x < TAM; x++)
{
vet[x] = 1 + (rand() % 6);
}
printf("\n\t\t\t\t====== SENHA GERADA ======\n\n");
printf("\t\t\t\tBoa sorte Desafiado(a)!!\n\n");
printf("\t\t\t\t==========================\n");
printf("\n");
printf("===================== BEM VINDO AO JOGO DA SENHA NOBRE DESAFIADO(A) =====================\n");
printf("\n");
system("pause");
system("cls");
for (x = 0; x < TAM; x++) // MOSTRANDO OS NUMERO SORTEADOS NO VETOR DE 4 POSICOES SO PARA TESTAR
{
printf("NUMERO DA SENHA GERADA: %d \n", vet[x]);
}
}
void lerTentativas(int tentativa, int numTentativa, int vet[TAM], int matriz[L][C]) // Função para ler as tentativas do Desafiado
{
int x, y, numLinha = 1, z = 0;
tentativa = 1;
for (x = 0; x < L; x++)
{
for (y = 0; y < 4; y++)
{
printf("\n");
textcolor(15);
printf("\t\t\t================ MENU ==================\n");
textcolor(2);
printf("\n\t\t\t\tDigite 1 para a cor verde\n");
textcolor(9);
printf("\t\t\t\tDigite 2 para a cor azul\n");
textcolor(14);
printf("\t\t\t\tDigite 3 para a cor amarelo\n");
textcolor(4);
printf("\t\t\t\tDigite 4 para a cor vermelho\n");
textcolor(5);
printf("\t\t\t\tDigite 5 para a cor roxo\n");
textcolor(1);
printf("\t\t\t\tDigite 6 para a cor azul marinho\n\n");
textcolor(15);
printf("\t\t\t================ MENU ==================\n\n\n");
printf("\t\t\t\tRespostas do Desafiante:\n");
printf("\n\tCaso o resultado de sua linha apos sua jogada seja 1 - Significa que ha uma cor certa no lugar certo\n");
printf("\n\tCaso o resultado de sua linha apos sua jogada seja 2 - Significa que ha uma cor certa mas no lugar errado\n");
printf("\n\tCaso o resultado de sua linha apos sua jogada seja 0 - Significa que nem a cor e nem a posicao estao corretas\n\n");
printf("\t\t\t========================================");
printf("\n\n\t\t\tDigite o numero %d da sua %d tentativa:\t", numLinha, tentativa); // informa tentativa atual
scanf("%d", &matriz[x][y]); //preenchendo matriz com tentativas do usuario
while (matriz[x][y] > 6 || matriz[x][y] < 1) // valida se o numero digitado esta conforme o MENU
{
printf("\t\t=======================================================\n");
printf("\t\tPor favor nobre desafiado(a), digite numeros de 1 ao 6.\n");
printf("\t\t=======================================================\n");
printf("\nDigite o numero %d da sua %d tentativa:\t", numLinha, tentativa); // informa tentativa atual
scanf("%d", &matriz[x][y]); //preenchendo matriz com tentativas do usuario
}
numLinha++;
mostrarMatriz(matriz); // Chama a funcao para mostrar a matriz atualizada a cada jogada.
printf("\n");
}
computaTentativas(matriz, &vet[z]);
numLinha = 1;
tentativa++;
}
}
void computaTentativas(int matriz[L][C], int vet[TAM]) // Função para comparar e computar as tentativas do Desafiado
{
int x, y, z = 0, j, i, senha[TAM];
for (x = 0; x < L; x++)
{
for (y = 0; y < C; y++)
{
if (matriz[x][y] == vet[z]) // Não sei se está correto este teste para se encontrar o numero preenchido da matriz está dentro do vet
{
for (j = 0; j < vet[z]; j++)
{
for (i = 4; i < 8; i++)
{
matriz[x][i] = 1;
printf("PARABENS");
// Se entrar aqui deveria mostrar a matriz e no lado esquerdo da matriz, colocar 1 no início da linha
}
}
}
else if (matriz[x][y] == vet[0] || matriz[x][y] == vet[1] || matriz[x][y] == vet[2] || matriz[x][y] == vet[3]) // Não sei se está correto este teste para se EXISTIR um numero dentro do vetor MAS ESTIVER NA POSICAO INCORRETA
{
for (j = 0; j < L; j++)
{
for (i = 4; i < 8; i++)
{
matriz[x][i] = 2;
// Se entrar aqui deveria mostrar a matriz e no lado esquerdo da matriz, colocar 1 no início da linha
}
} // Se entrar aqui deveria mostrar a matriz e no lado esquerdo da matriz, colocar 2 no início da linha
}
z++;
}
}
}
void mostrarMatriz(int matriz[L][C])
{
int x, y;
printf("\n\n");
printf("\t\t============== MATRIZ ATUALIZADA ==============");
for (x = 0; x < L; x++)
{
printf("\n");
for (y = 0; y < C; y++)
{
printf("\t%4d", matriz[x][y]);
}
}
printf("\n");
printf("\t\t============== MATRIZ ATUALIZADA ==============\n\n");
system("pause");
system("cls");
}
int main()
{
int x, y, matriz[L][C] = {0}, senha, vet[TAM], tentativa = 0, numTentativa;
printf("===================== BEM VINDO AO JOGO DA SENHA NOBRE DESAFIADO(A) =====================\n");
sorteio(&vet);
lerTentativas(tentativa, numTentativa, vet, &matriz);
system("cls");
printf("\n");
printf("\t\t\t============== FINAL DE JOGO ==============\n");
printf("\n\t\t\tTENTATIVAS ESGOTADAS, O DESAFIANTE VENCEU!\n\n\t");
printf("\t\t============== FINAL DE JOGO ==============\n\n");
system("pause");
return 0;
}