SamL
(usa XUbuntu)
Enviado em 04/06/2009 - 03:48h
Não é certo que eu faça um exercicio para você, mas como não encontrei uma implementação do jogo na internet, vou quebrar teu galho.
NOTE: Aqui só refiz a função facil(), com ela você pode fazer algo mais elaborado.
void facil()
{
printf ("Esse e o nivel facil\n");
int num, i, j;
int max_rodadas = 8, max = 3;//numero maximo desejado mais 1
int seqFacil = 9;
int score = 0;//para ficar mais bonito
char letra[9], resposta[9], continuar;
srand(time(NULL));
//NOTE: NO JOGO GENIUS(OU SIMONS) É MOSTRADA UMA SEQUENCIA QUE PROGRESSIVAMENTE ALMENTA A DIFICULDADE, AQUI IMPLEMENTEI A MESMA IDEIA, COM NO MAXIMO 8 RODADAS SEGUIDAS, COMPARANDO 9 CARACTERES.
//poderia ter mais rodadas
j = 0;
while(j < max_rodadas)
{
printf("\tNIVEL:::%d\n", j);
//espera 3 segundos...
sleep(3);
//... e limpa a tela.
printf("\e[H\e[2J");
for(i = 0; i < seqFacil; i++)
{
///////escolhe um numero aleatoriamente entre 0 e 2
num = rand()%max; //Armazena o inteiro acima na variavel (num)
switch(num) //Esse switch associa o numero da variavel 'num' a um caractere
{
case 0:
letra[i] = 'r';//atribuindo 'r' a letra[i]
break;
case 1:
letra[i] = 'b';//atribuindo 'b' a letra[i]
break;
case 2:
letra[i] = 'g';//atribuindo 'g' a letra[i]
break;
case 3://ESSA PARTE TEM QUE SER RETIRADA
//se(num = rand()%max) e (max=3), então: num NUNCA será 3;
// para num ser no maximo 3, max deve ser 4, sempre um a mais que o valor maximo desejado
letra[i] = 'y';//O que seria o 'y'???
break;
}
// letra[i+1] = letra[0]; //Vetor criado para que a sequencia nao sobreponha a anterior
// printf ("%c\n", letra[i+1]);
///////mostra a letra sorteada para o usuario...
printf("%c\n", letra[i]);
///////...aguarda 2 segundos para que o usuario veja o caractere escolhido...
sleep(2);//2 segundos
//...e limpa "a tela".
printf("\e[H\e[2J");
}
printf ("Qual a sequencia que apareceu?\n");
for(i = 0; i < seqFacil; i++)
{
//pega um caractere por vez
scanf("%c",&resposta[i]);
//limpando o buffer
getchar();
//compara se o caractere digitado corresponde ao da sequencia inicial
if(resposta[i] == letra[i])
{
printf("Acertou!\n");
score = score + 1;
}
else
{
//NOTE: reveja aqui!
printf("\nVocê Errou!\n\n");
printf("Deseja continuar? (s/n)\n");
continuar = getchar();
//getchar();
if(continuar == 's' || continuar == 'S')
{
//resetando o jogo
j = -1;
i = seqFacil + 1;
//O score só é mostrado quando o usuario desistir
//break;
}
else if(continuar == 'n' || continuar == 'N')
{
printf("FIM DE JOGO\n");
printf("\tSCORE:::%d letra(s) correta(s)\n\n", score);
return;
}
else
{
printf("Opção Inválida\n");
}
}
}
}
}
valeu!