Jogo de Adivinhação
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void printHorizontalLine(int tam, char estilo) {
for(int i = 0; i < tam; i++) {
cout << estilo;
}
cout << endl;
}
void printTitle() {
cout << "\tJOGO DE ADIVINHACAO" << endl;
}
void printDifficultyMenu() {
cout << "\tNIVEIS DE DIFICULDADE" << endl << endl;
cout << "1. Facil" << endl;
cout << "2. Medio" << endl;
cout << "3. Dificil" << endl;
}
int main() {
const int LINE_SIZE = 35;
const char LINE_STYLE = '-';
printHorizontalLine(LINE_SIZE, LINE_STYLE);
printTitle();
printHorizontalLine(LINE_SIZE, LINE_STYLE);
printDifficultyMenu();
printHorizontalLine(LINE_SIZE, LINE_STYLE);
int difficulty;
cout << "Escolha o seu nivel de dificuldade: " << endl;
cin >> difficulty;
printHorizontalLine(LINE_SIZE, LINE_STYLE);
int attempts = 0, maxAttempts;
string attemptWord;
if(difficulty == 1) maxAttempts = 20;
else if(difficulty == 2) maxAttempts = 10;
else maxAttempts = 5;
srand(time(NULL));
const int SECRET_NUMBER = rand() % 100;
cout << "Numero secreto: " << SECRET_NUMBER << endl;
bool notGuessed = true;
double score = 1000;
while(notGuessed) {
if(attempts == maxAttempts && notGuessed) {
cout << endl << "Voce perdeu! " << endl;
cout << "O numero secreto era " << SECRET_NUMBER << endl;
return 0;
}
attempts++;
cout << "Tentativa " << attempts << " de " << maxAttempts << endl << endl;
int guess;
cout << "Digite seu chute: ";
cin >> guess;
double pontos_perdidos = abs(guess - SECRET_NUMBER) / 2.0;
score -= pontos_perdidos;
cout << endl << "Seu chute foi: " << guess << endl;
bool guessed = guess == SECRET_NUMBER;
bool isGreater = guess < SECRET_NUMBER;
if (guessed) {
cout << "Parabens!" << endl << "Voce acertou o numero secreto." << endl;
notGuessed = false;
}
else if (isGreater) {
cout << "O numero secreto eh maior que " << guess << "." << endl;
}
else {
cout << "O numero secreto eh menor que " << guess << "." << endl;
}
printHorizontalLine(LINE_SIZE, LINE_STYLE);
}
attemptWord = (attempts > 1) ? "tentativas" : "tentativa";
cout << "Fim de Jogo!" << endl << endl;
cout << "Voce terminou o jogo em " << attempts << " " << attemptWord << "." << endl;
cout.precision(2);
cout << fixed;
cout << "Sua pontuacao foi de " << score << " score" << endl << endl;
return 0;
}