O último problema Im tendo é encontrar o código certo para corrigir a função quase quando houver mais de um de um número
O código é 4742
se eu acho 2474
Direito 0, quase 2
deve ser quase 4, desde 4 números correspondência, mas todos na posição errada
Aqui está o código até agora:
# include<stdio.h>
# include<stdlib.h>
# include<time.h>
/ Protótipos /
void intcodearray (int codearr[]);
void getGuess (int guessarr[]);
int comparearray (int codearr [], int guessarr [], int flagarr[]);
void showresults (int flagarr[]);
void outputarray (int outarr[]);
/ programa principal entrada /
int main (int argc, char argv[])
{
int codearr [4], guessarr [4], flagarr [4] = {0,0,0,0};
int max_tries = 0;
vitória de int = 0;
/ Introdução /
printf("===========================================================\n");
printf("\t\t\tCODEBREAKER\n");
printf("===========================================================\n");
printf ("bem-vindo ao Codebreaker, insira 4 números entre 0-9.\n");
printf ("ter até dez tentativas para descobrir o código. Boa sorte! \ n \ n ");
/ Terminar introdução /
intcodearray(codearr);
/ / outputarray(codearr);
para (max_tries = 0; max_tries<= 10="" ;="" max_tries++)=""></=>
{
printf ("código adivinhar:");
getGuess(guessarr);
outputarray(guessarr);
ganhar = comparearray (codearr, guessarr, flagarr);
/ / outputarray(flagarr);
if(Win==4) / palpites máximo atingido, jogo final /
{
printf ("felicitações, você resolveu com êxito o quebra-cabeça. \ n");
quebra;
}
se (max_tries = = 10 && ganhar! = 4)
{
printf ("\nque foi dez palpites, e você era incapaz de resolver o enigma. \ n");
printf ("A resposta foi:");
outputarray(codearr);
printf ("você falhou. Adeus! \n ");
}
}
System("Pause");
return 0;
}
/ Void códigos /
privatevoid intcodearray(int codearr[])
{
int i = 0;
srand(time(NULL));
para (i = 0; i<4 ;="" i++)=""></4>
{
codearr [i] = rand () %9;
}
}
privatevoid getGuess(int guessarr[])
{
palpite de int = 0;
scanf ("%d", &guess);
guessarr [0] = palpite / 1000;
palpite = palpite % 1000;
guessarr [1] = palpite / 100;
palpite = palpite % 100;
guessarr [2] = palpite / 10;
palpite = palpite % 10;
guessarr [3] = estimativa;
}
int comparearray (int codearr [], int guessarr [], int flagarr[])
{
código de int, palpite, bandeira;
int i = 0, externa = 0;
int direita = 0, quase = 0;
para (i = 0; i<4 ;="" i++)="" rights=""></4>
{
se (codearr [i] = = guessarr[i])
/ / printf ("Yes\n", guessarr[i]);
{
flagarr [i] = 1;
direito + +;
}
}
para (exterior = 0; exterior< 4="" ;="" outer++)="">
para (i = 0; i<4 ;="" i++)="" almost=""></4>
{
se (codearr [exterior] = = guessarr[i]&&flagarr[outer]==0)
{
flagarr [i] = 1;
quase + +;
}
}
printf ("%d, % d n quase de direita", mesmo, quase);
Return(Right);
}
privatevoid showresults(int flagarr[])
{
}
privatevoid outputarray(int outarr[])
{
int i = 0;
para (i = 0; i< 4="" ;="" i++)="">
{
printf ("%d", outarr[i]);
}
printf("\n\n");
}</time.h></stdlib.h></stdio.h>