You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
// Imports
|
|
#include <iostream>
|
|
#include <ctime>
|
|
|
|
// Print Introduction
|
|
void PrintIntroduction(int Difficulty) {
|
|
// Welcome Message
|
|
std::cout << "You are a secret agent trying to break into a secure server room. Crack the level " << Difficulty - 1 << " code to continue.\n\n";
|
|
}
|
|
|
|
// Play Game
|
|
bool PlayGame(int Difficulty) {
|
|
// Welcome Message
|
|
PrintIntroduction(Difficulty);
|
|
// Generate Secret Code
|
|
const int CodeA = (rand() % Difficulty) + Difficulty;
|
|
const int CodeB = (rand() % Difficulty) + Difficulty;
|
|
const int CodeC = (rand() % Difficulty) + Difficulty;
|
|
const int CodeSum = CodeA + CodeB + CodeC;
|
|
const int CodeProduct = CodeA * CodeB * CodeC;
|
|
// Display Information
|
|
std::cout << "There are three numbers in the code.\nThe digits in the code add up to " << CodeSum << ".\nThe digits in the code multiply to give " << CodeProduct << ".\n\n";
|
|
// Input
|
|
int GuessA, GuessB, GuessC;
|
|
std::cin >> GuessA;
|
|
std::cin >> GuessB;
|
|
std::cin >> GuessC;
|
|
std::cout << std::endl;
|
|
// Check Guess
|
|
int GuessSum = GuessA + GuessB + GuessC;
|
|
int GuessProduct = GuessA * GuessB * GuessC;
|
|
if (GuessSum == CodeSum && GuessProduct == CodeProduct) {
|
|
std::cout << "Code accepted.\n\n";
|
|
return true;
|
|
} else {
|
|
std::cout << "Code rejected.\n\n";
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// Main Function
|
|
int main() {
|
|
// Dificulty Settings
|
|
int LevelDifficulty = 2;
|
|
const int MaxDifficulty = 6;
|
|
srand(time(NULL));
|
|
// Game Loop
|
|
while (LevelDifficulty <= MaxDifficulty) {
|
|
// Run Game
|
|
bool bLevelComplete = PlayGame(LevelDifficulty);
|
|
// Clear Errors and Discard The Buffer
|
|
std::cin.clear();
|
|
std::cin.ignore();
|
|
// Check Level
|
|
if (bLevelComplete) {
|
|
// Increment Difficulty
|
|
++LevelDifficulty;
|
|
}
|
|
}
|
|
// Return
|
|
return 0;
|
|
} |