#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main() {
//Cabeçalho
setlocale(LC_ALL, "");
printf(" /_________\\ \n");
printf(" /===========\\ \n");
printf(" / ____________\\ \n");
printf(" | ___________ | \n");
printf(" | | - | | \n");
printf(" | | | | \033[1;34mPraticando Linguagem C\033[0m \033[1;37m- Tailane Brito.\033[0m\n");
printf(" | |_________| |________________________________________\n");
printf(" \\=____________/ Bem vindo(a) ao jogo de advinhação!\n");
printf(" / \"\"\"\"\"\"\"\"\"\"\" \\\n");
printf(" / ::::::::::::: \\ \n");
printf("(_________________) \n");
//ReferĂȘncia: ASCII Art - brian macdonald
//Gerando um nĂșmero aleatĂłrio e definindo um intervalo de 0 a 99.
srand(time(0));
int num_secreto = rand() % 100;
//Declaração de variåveis
int chute;
int nivel;
int tentativas = 0;
int totaldetentativas;
double pontos = 1000;
//Definindo nĂvel de dificuldade
while (1) {
printf("\033[33mDefina o nĂvel de dificuldade:\033[0m\n");
printf("\033[1;37m(1) FĂĄcil (2)MĂ©dio (3)DifĂcil\033[0m\n");
printf("\033[33mDigite sua opção (somente nĂșmeros):\033[0m ");
if(scanf("%d", &nivel) != 1) {
printf("\033[1;31mDigite um nĂșmero vĂĄlido. \033[0m\n");
while (getchar() != '\n'); //Limpa o buffer
continue;
}
switch (nivel) {
case 1:
totaldetentativas = 15;
printf("\033[1;34mPreparado? VocĂȘ possui %d chances. Boa sorte!\033[0m\n", totaldetentativas);
break;
case 2:
totaldetentativas = 10;
printf("\033[1;34mPreparado? VocĂȘ possui %d chances. Boa sorte!\033[0m\n", totaldetentativas);
break;
case 3:
totaldetentativas = 5;
printf("\033[1;34mPreparado? VocĂȘ possui %d chances. Boa sorte!\033[0m\n", totaldetentativas);
break;
default:
printf("\033[1;31mOpção invålida. Siga as instruçÔes \033[0m\n");
continue;
}
break;
}
//Interação com o usuårio
for(int i = 1; i <= totaldetentativas; i++) {
printf("%dÂș Tentativa. \033[1;90mTente um nĂșmero:\033[0m ", i);
if (scanf("%d", &chute) != 1) {
printf("\033[1;31mDigite um nĂșmero vĂĄlido.\033[0m\n\n");
while (getchar() != '\n');
i--; // NĂŁo conta como tentativa
continue;
}
//CondiçÔes
if(chute < 0){
printf("\033[1;31mVocĂȘ nĂŁo pode chutar nĂșmeros negativos.\033[0m\n");
i--;
continue;
}
tentativas++;
if (chute == num_secreto) {
printf("\033[1;32mParabĂ©ns! VocĂȘ acertou em %d tentativas.\033[0m\n", tentativas);
break;
} else if (chute > num_secreto) {
printf("\033[1;34mTente um nĂșmero menor.\033[0m\n");
} else {
printf("\033[1;34mTente um nĂșmero maior.\033[0m\n");
}
//Definindo pontuação do usuårio
double pontos_perdidos = fabs(chute - num_secreto) / 2.0;
pontos = pontos - pontos_perdidos;
}
// Mensagem de derrota
if (chute != num_secreto) {
printf("\033[1;31mVocĂȘ perdeu! O nĂșmero secreto era %d. Tente novamente!\033[0m\n", num_secreto);
}
//Mensagem final ao usuĂĄrio
printf("Fim de jogo! VocĂȘ fez um total de %.2f pontos. \n", pontos);
return 0;
}