#include #include #include class Score { int value; public: Score(int initialValue = 5) : value(initialValue) {} Score& operator++() { ++value; return *this; } Score& operator--() { --value; return *this; } Score operator--(int) { Score temp = *this; value--; return temp; } int getScore() const { return value; } }; class GuessingGame { int targetNumber; Score score; public: GuessingGame() : score(5) { srand(static_cast(time(0))); targetNumber = rand() % 10 + 1; } void play() { std::cout << "Virtual Guessing Game Starts!\n"; std::cout << "The virtual player will guess a number between 1 and 10.\n"; std::cout << "Score decreases for incorrect guesses and increases for correct ones.\n"; int attempt = 1; while (score.getScore() > 0) { int guess = rand() % 10 + 1; std::cout << "Attempt " << attempt << ": Virtual player guesses " << guess << ". "; if (guess > targetNumber) { std::cout << "Too high! "; --score; } else if (guess < targetNumber) { std::cout << "Too low! "; score--; } else { ++score; std::cout << "Correct! Score increases!\n"; std::cout << "The virtual player guessed the correct number: " << targetNumber << "\n"; std::cout << "Final score: " << score.getScore() << "\n"; return; } std::cout << "Score decreases. Current score: " << score.getScore() << "\n"; attempt++; } std::cout << "Game Over! The virtual player ran out of score.\n"; std::cout << "The correct number was: " << targetNumber << "\n"; } }; int main() { GuessingGame game; game.play(); return 0; }