Alguém me ajuda fazer? esse jogo da ESTRELAS em C
Em ESTRELAS o objetivo é adivinhar um número N (entre 32 e 128) gerado pelo computador. A
cada entrada o computador emitirá uma mensagem composta por “estrelas”, sendo que a diferença
poderá ser tanto para cima quanto para baixo:
Diferença Mensagem
>=64 * (1 estrela)
>=32 ** (2 estrelas)
>=16 *** (3 estrelas)
>=8 **** (4 estrelas)
>=4 ***** (5 estrelas)
>=2 ****** (6 estrelas)
=1 ******* (7 estrelas)
Já tenho o número em mente. Agora é sua vez de adivinhar.
Entre com um valor entre 32 e 128: 96
***
Entre com um valor entre 32 e 128: 112
**
Entre com um valor entre 32 e 128: 80
*****
Entre com um valor entre 32 e 128: 76
******
Entre com um valor entre 32 e 128: 72
*******
Entre com um valor entre 32 e 128: 71
******
Entre com um valor entre 32 e 128: 73
Vencedor após 7 tentativas
ESTRELAS é bem parecido com ARMADILHA, mas poderá ser jogado até por uma pessoa com
deficiência visual, pois, para cada estrela mostrada na tela um beep será produzido pelo alto-falante
do computador.
Esse efeito é dado mostrando o caractere especial \a. Por exemplo:
#include
void main()
{
int i;
for(i=1;i<=10;i++)
printf ("\a");
}
Soluções para a tarefa
Olá!
Vou escrever o código em C e comentá-lo para você:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main() {
int i,resposta,aleatorio,contador=0,verifica=0,teste; \\declaração das variáveis
aletorio = (rand() % 128) + 32 \\Gerando número aleatório entre 32 e 128
while(verifica == 0){ \\Repetindo a função enquanto o jogador não acertar
contador++; \\conta o número de tentativas
printf("Digite um número: ");
scanf("%d",&resposta);
teste = resposta - aleatorio;
if(teste >= 64 || teste <= -64){ \\verifica se é maior que 64
printf("*");
for(i=0;i<1;i++){
printf("\a");
}
}else if(teste >= 32 || teste <= -32){ \\ verifica se é maior que 32
printf("**");
for(i=0;i<2;i++){
printf("\a");
}
}else if(teste >= 16 || teste <= -16){
printf("***");
for(i=0;i<3;i++){
printf("\a");
}
}else if(teste >= 8 || teste <= -8){
printf("****");
for(i=0;i<4;i++){
printf("\a");
}
}else if(teste >=4 || teste <= -4){
printf("*****");
for(i=0;i<5;i++){
printf("\a");
}
}else if(teste >= 2 || teste <= -2){
printf("******");
for(i=0;i<6;i++){
printf("\a");
}
}else if(teste == 1 || teste == -1){
printf("*******");
for(i=0;i<7;i++){
printf("\a");
}
}else{
printf("O jogador venceu com %d tentativas",contador);
verifica = 1; \\condição para parar o jogo
}
}
}