diff --git a/Pokemon/BattleManager.cpp b/Pokemon/BattleManager.cpp new file mode 100644 index 00000000..406ec9ac --- /dev/null +++ b/Pokemon/BattleManager.cpp @@ -0,0 +1,59 @@ +#include "BattleManager.h" +#include +#include "Pokemon.h" +#include "PokemonType.h" +#include "player.h" +#include "utility.h" +#include "BattleState.h" +using namespace std; + +void BattleManager::startBattle(Player& player, Pokemon& wildPokemon) { + battleState.playerPokemon = &player.chosenPokemon; + battleState.wildPokemon = &wildPokemon; + battleState.playerTurn = true; // Player starts first + battleState.battleOngoing = true; + + std::cout << "A wild " << wildPokemon.name << " appeared!\\n"; + battle(); +} + +void BattleManager::battle() { + while (battleState.battleOngoing) { + if (battleState.playerTurn) { + // Player's turn to attack + battleState.playerPokemon->attack(*battleState.wildPokemon); + } + else { + // Wild Pokémon's turn to attack + battleState.wildPokemon->attack(*battleState.playerPokemon); + } + + // Update the battle state after the turn + updateBattleState(); + + // Switch turns + battleState.playerTurn = !battleState.playerTurn; + + Utility::waitForEnter(); + } + + handleBattleOutcome(); +} + +void BattleManager::updateBattleState() { + if (battleState.playerPokemon->isFainted()) { + battleState.battleOngoing = false; + } + else if (battleState.wildPokemon->isFainted()) { + battleState.battleOngoing = false; + } +} + +void BattleManager::handleBattleOutcome() { + if (battleState.playerPokemon->isFainted()) { + std::cout << battleState.playerPokemon->name << " has fainted! You lose the battle.\\n"; + } + else { + std::cout << "You defeated the wild " << battleState.wildPokemon->name << "!\\n"; + } +} \ No newline at end of file diff --git a/Pokemon/BattleManager.h b/Pokemon/BattleManager.h new file mode 100644 index 00000000..d9c8ce6c --- /dev/null +++ b/Pokemon/BattleManager.h @@ -0,0 +1,14 @@ +#include "Pokemon.h" +#include "player.h" +#include"BattleState.h" + +class BattleManager { +public: + void startBattle(Player& player, Pokemon& wildPokemon); +private: + BattleState battleState; // New BattleState object to track the battle + + void battle(); + void handleBattleOutcome(); + void updateBattleState(); // Method to update the battle state after each turn +}; \ No newline at end of file diff --git a/Pokemon/BattleState.cpp b/Pokemon/BattleState.cpp new file mode 100644 index 00000000..d4dde2be --- /dev/null +++ b/Pokemon/BattleState.cpp @@ -0,0 +1 @@ +#include "BattleState.h" diff --git a/Pokemon/BattleState.h b/Pokemon/BattleState.h new file mode 100644 index 00000000..63766235 --- /dev/null +++ b/Pokemon/BattleState.h @@ -0,0 +1,8 @@ +#include "Pokemon.h" + +struct BattleState { + Pokemon* playerPokemon; // Pointer to the player's Pokémon + Pokemon* wildPokemon; // Pointer to the wild Pokémon + bool playerTurn; // True if it's the player's turn, false if it's the wild Pokémon's turn + bool battleOngoing; // True if the battle is ongoing, false if the battle has ended +}; \ No newline at end of file diff --git a/Pokemon/Game.cpp b/Pokemon/Game.cpp new file mode 100644 index 00000000..859fa8c0 --- /dev/null +++ b/Pokemon/Game.cpp @@ -0,0 +1,89 @@ +#include "Game.h" +#include "Player.h" +#include "PokemonType.h" +#include "utility.h" +#include "WildEncounterManager.h" +#include +#include"BattleManager.h" +using namespace std; + +Game::Game() { + // Create a sample grass environment with actual Pokemon objects + forestGrass = { "Forest", + {Pokemon("Pidgey", PokemonType::NORMAL, 40), + Pokemon("Caterpie", PokemonType::BUG, 35), + Pokemon("Zubat", PokemonType::POISON, 30)}, + 70 }; +} + +void Game::gameLoop(Player& player) { + + BattleManager BattleManager; + int choice; + bool keepPlaying = true; + + while (keepPlaying) { + // Clear console before showing options + Utility::clearConsole(); + + // Display options to the player + cout << "\nWhat would you like to do next, " << player.name << "?\n"; + cout << "1. Battle Wild Pokémon\n"; + cout << "2. Visit PokeCenter\n"; + cout << "3. Challenge Gyms\n"; + cout << "4. Enter Pokémon League\n"; + cout << "5. Quit\n"; + cout << "Enter your choice: "; + cin >> choice; + + Utility::clearInputBuffer(); // Clear the input buffer + + // Process the player's choice and display the corresponding message + switch (choice) { + case 1: { + // Create a scope within case 1 + WildEncounterManager encounterManager; + Pokemon wildPokemon = encounterManager.getRandomPokemonFromGrass(forestGrass); + BattleManager.startBattle(player,wildPokemon);; + break; + } + case 2: { + cout << "You head to the PokeCenter.\\n"; + player.chosenPokemon.heal(); + cout << player.chosenPokemon.name << " has been healed to full health!\n"; + break; + } + case 3: { + cout << "You march up to the Gym, but it's closed for renovations. Seems " + "like even Gym Leaders need a break!\n"; + break; + } + case 4: { + cout << "You boldly step towards the Pokémon League... but the " + "gatekeeper laughs and says, 'Maybe next time, champ!'\n"; + break; + } + case 5: { + cout << "You try to quit, but Professor Oak's voice echoes: 'There's no " + "quitting in Pokémon training!'\n"; + cout << "Are you sure you want to quit? (y/n): "; + char quitChoice; + cin >> quitChoice; + if (quitChoice == 'y' || quitChoice == 'Y') { + keepPlaying = false; + } + break; + } + default: { + cout << "That's not a valid choice. Try again!\n"; + break; + } + } + + // Wait for Enter key before the screen is cleared and the menu is shown + // again + Utility::waitForEnter(); + } + + cout << "Goodbye, " << player.name << "! Thanks for playing!\n"; +} \ No newline at end of file diff --git a/Pokemon/Game.h b/Pokemon/Game.h new file mode 100644 index 00000000..e5d3602a --- /dev/null +++ b/Pokemon/Game.h @@ -0,0 +1,11 @@ +#include "Grass.h" + +class Player; + +class Game { +private: + Grass forestGrass; +public: + Game(); + void gameLoop(Player& player); +}; \ No newline at end of file diff --git a/Pokemon/Grass.cpp b/Pokemon/Grass.cpp new file mode 100644 index 00000000..7378afdd --- /dev/null +++ b/Pokemon/Grass.cpp @@ -0,0 +1,14 @@ +#include "Grass.h" +#include"PokemonType.h" + +Grass forestGrass = { + "Forest", + {{"Pidgey", PokemonType::NORMAL, 40}, {"Caterpie", PokemonType::BUG, 35}}, + 70 +}; + +Grass caveGrass = { + "Cave", + {{"Zubat", PokemonType::POISON, 30}, {"Geodude", PokemonType::ROCK, 50}}, + 80 +}; \ No newline at end of file diff --git a/Pokemon/Grass.h b/Pokemon/Grass.h new file mode 100644 index 00000000..0c0c9516 --- /dev/null +++ b/Pokemon/Grass.h @@ -0,0 +1,12 @@ +#include +#include +#include"Pokemon.h" +using namespace std; + +struct Grass{ + string environmentType; // Example: "Forest", "Cave", "Riverbank" + vector wildPokemonList; // List of wild Pokémon that live in this grass + int encounterRate; // Likelihood of encountering a wild Pokémon, out of 100 + +}; + diff --git a/Pokemon/Pokemon.cpp b/Pokemon/Pokemon.cpp new file mode 100644 index 00000000..f5f4b5d8 --- /dev/null +++ b/Pokemon/Pokemon.cpp @@ -0,0 +1,39 @@ +#include "Pokemon.h" +#include +#include"PokemonType.h" + +Pokemon::Pokemon():name("unknown"),type(PokemonType::NORMAL),health(50){} +// Parameterized constructor +Pokemon::Pokemon(string p_name, PokemonType p_type, int p_health): name(p_name), +type(p_type), +health(p_health) { +} + +// Copy constructor +Pokemon::Pokemon(const Pokemon& other):name(other.name),type(other.type),health(other.health) {} + +// Destructor +Pokemon::~Pokemon() { + // Destructor message removed +} + +void Pokemon::attack(Pokemon& target) { + int damage = attackPower; // Example damage value, could be based on type or other factors + target.TakeDamage(damage); // Example damage value + cout << name << " attacks " << target.name << " for " << damage << " damage!\\n"; +} +void Pokemon::TakeDamage(int Damage) { + health -= Damage;// Reduce health by the damage taken + + if (health < 0) { + health = 0; // Ensure health doesn't go below 0 + } +} +bool Pokemon::isFainted() const { + return health <= 0; // Check if health is 0 or less +} + +int Pokemon::heal() { + int healAmount = maxHealth; // Example heal amount + return health; // Return the new health value +} \ No newline at end of file diff --git a/Pokemon/Pokemon.h b/Pokemon/Pokemon.h new file mode 100644 index 00000000..7271f11c --- /dev/null +++ b/Pokemon/Pokemon.h @@ -0,0 +1,33 @@ +#include +using namespace std; + +enum class PokemonType; + +class Pokemon { +public: + string name; + PokemonType type; + int health; + int maxHealth; + int attackPower; + + // Default constructor + Pokemon(); + + // Parameterized constructor + Pokemon(string p_name, PokemonType p_type, int p_health); + + // Copy constructor + Pokemon(const Pokemon& other); + + // Destructor + ~Pokemon(); + + void attack(Pokemon & target); + + void TakeDamage(int damage); + + bool isFainted() const; + + int heal(); +}; \ No newline at end of file diff --git a/Pokemon/Pokemon.sln b/Pokemon/Pokemon.sln index dea79cff..b117a60a 100644 --- a/Pokemon/Pokemon.sln +++ b/Pokemon/Pokemon.sln @@ -1,7 +1,12 @@  Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36310.24 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Pokemon", "Pokemon.vcxproj", "{872261CB-D6AC-488B-91C5-1B44032596F2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Header.h", "..\Header.h\Header.h.vcxproj", "{47FEE16B-AAEB-4576-91E7-3C9C5225D963}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -18,5 +23,19 @@ Global {872261CB-D6AC-488B-91C5-1B44032596F2}.Release|Win32.Build.0 = Release|Win32 {872261CB-D6AC-488B-91C5-1B44032596F2}.Release|x64.ActiveCfg = Release|x64 {872261CB-D6AC-488B-91C5-1B44032596F2}.Release|x64.Build.0 = Release|x64 + {47FEE16B-AAEB-4576-91E7-3C9C5225D963}.Debug|Win32.ActiveCfg = Debug|Win32 + {47FEE16B-AAEB-4576-91E7-3C9C5225D963}.Debug|Win32.Build.0 = Debug|Win32 + {47FEE16B-AAEB-4576-91E7-3C9C5225D963}.Debug|x64.ActiveCfg = Debug|x64 + {47FEE16B-AAEB-4576-91E7-3C9C5225D963}.Debug|x64.Build.0 = Debug|x64 + {47FEE16B-AAEB-4576-91E7-3C9C5225D963}.Release|Win32.ActiveCfg = Release|Win32 + {47FEE16B-AAEB-4576-91E7-3C9C5225D963}.Release|Win32.Build.0 = Release|Win32 + {47FEE16B-AAEB-4576-91E7-3C9C5225D963}.Release|x64.ActiveCfg = Release|x64 + {47FEE16B-AAEB-4576-91E7-3C9C5225D963}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AA496C07-30CF-4C3C-ABFF-0573647E3200} EndGlobalSection EndGlobal diff --git a/Pokemon/Pokemon.vcxproj b/Pokemon/Pokemon.vcxproj index 9e6331ef..2f89b0e7 100644 --- a/Pokemon/Pokemon.vcxproj +++ b/Pokemon/Pokemon.vcxproj @@ -154,7 +154,11 @@ + + + + @@ -162,6 +166,12 @@ + + + + + + diff --git a/Pokemon/Pokemon.vcxproj.filters b/Pokemon/Pokemon.vcxproj.filters index 644f8bee..3ffc753b 100644 --- a/Pokemon/Pokemon.vcxproj.filters +++ b/Pokemon/Pokemon.vcxproj.filters @@ -18,5 +18,31 @@ Source Files + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + \ No newline at end of file diff --git a/Pokemon/Pokemon.vcxproj.user b/Pokemon/Pokemon.vcxproj.user new file mode 100644 index 00000000..88a55094 --- /dev/null +++ b/Pokemon/Pokemon.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Pokemon/PokemonChoice.cpp b/Pokemon/PokemonChoice.cpp new file mode 100644 index 00000000..e69de29b diff --git a/Pokemon/PokemonChoice.h b/Pokemon/PokemonChoice.h new file mode 100644 index 00000000..5e3d29a4 --- /dev/null +++ b/Pokemon/PokemonChoice.h @@ -0,0 +1,7 @@ +// Define an enum for Pokemon choices +enum class PokemonChoice { + CHARMANDER = 1, + BULBASAUR, + SQUIRTLE, + PIKACHU // Default choice +}; \ No newline at end of file diff --git a/Pokemon/PokemonType.cpp b/Pokemon/PokemonType.cpp new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Pokemon/PokemonType.cpp @@ -0,0 +1 @@ + diff --git a/Pokemon/PokemonType.h b/Pokemon/PokemonType.h new file mode 100644 index 00000000..7ee5187a --- /dev/null +++ b/Pokemon/PokemonType.h @@ -0,0 +1,11 @@ +// Define an enum for Pokemon types +enum class PokemonType { + FIRE, + GRASS, + WATER, + ELECTRIC, + NORMAL, + BUG, + POISON, + ROCK // Added for the default constructor +}; \ No newline at end of file diff --git a/Pokemon/ProfessorOak.cpp b/Pokemon/ProfessorOak.cpp new file mode 100644 index 00000000..66ea0e0b --- /dev/null +++ b/Pokemon/ProfessorOak.cpp @@ -0,0 +1,109 @@ +#include "ProfessorOak.h" +#include"utility.h" +#include + +// Parameterized constructor +ProfessorOak::ProfessorOak(string p_name) { name = p_name; } + +void ProfessorOak::greetPlayer(Player& player) { + cout << name << ": Hello there! Welcome to the world of Pokemon!\n"; + Utility::waitForEnter(); + cout << name + << ": My name is Oak. People call me the Pokemon Professor!\n"; + Utility::waitForEnter(); + cout << name << ": But enough about me. Let's talk about you!\n"; + Utility::waitForEnter(); +} + +void ProfessorOak::offerPokemonChoices(Player& player) { + cout + << name + << ": First, tell me, what’s your name? \t [Please Enter Your Name]\n"; + getline(cin, player.name); + cout << name << ": Ah, " << player.name + << "! What a fantastic name!\n"; + Utility::waitForEnter(); + cout << name + << ": You must be eager to start your adventure. But first, " + "you’ll need a Pokemon of your own!\n"; + Utility::waitForEnter(); + + // Presenting Pokemon choices + cout + << name + << ": I have three Pokemon here with me. They’re all quite feisty!\n"; + Utility::waitForEnter(); + cout << name << ": Choose wisely...\n"; + cout << "1. Charmander - The fire type. A real hothead!\n"; + cout << "2. Bulbasaur - The grass type. Calm and collected!\n"; + cout << "3. Squirtle - The water type. Cool as a cucumber!\n"; + + int choice; + cout + << name + << ": So, which one will it be? Enter the number of your choice: "; + cin >> choice; + + player.choosePokemon(choice); + Utility::waitForEnter(); +} + +// New method for the main quest conversation +void ProfessorOak::explainMainQuest(Player& player) { + // Clear the console + Utility::clearConsole(); + + cout << "Professor Oak: " << player.name + << "!, I am about to explain you about your upcoming grand " + "adventure.\n"; + Utility::waitForEnter(); + cout << "Professor Oak: You see, becoming a Pokémon Master is no easy " + "feat. It takes courage, wisdom, and a bit of luck!\n"; + Utility::waitForEnter(); + cout + << "Professor Oak: Your mission, should you choose to accept it—and " + "trust me, you really don’t have a choice—is to collect all the " + "Pokémon Badges and conquer the Pokémon League.\n"; + Utility::waitForEnter(); + + cout << "\n" + << player.name + << ": Wait... that sounds a lot like every other Pokémon game " + "out there...\n"; + Utility::waitForEnter(); + cout << "Professor Oak: Shhh! Don't break the fourth wall, " + << player.name << "! This is serious business!\n"; + Utility::waitForEnter(); + + cout << "\nProfessor Oak: To achieve this, you’ll need to battle wild " + "Pokémon, challenge gym leaders, and of course, keep your " + "Pokémon healthy at the PokeCenter.\n"; + Utility::waitForEnter(); + cout << "Professor Oak: Along the way, you'll capture new Pokémon to " + "strengthen your team. Just remember—there’s a limit to how " + "many Pokémon you can carry, so choose wisely!\n"; + Utility::waitForEnter(); + + cout << "\n" + << player.name << ": Sounds like a walk in the park... right?\n"; + Utility::waitForEnter(); + cout << "Professor Oak: Hah! That’s what they all say! But beware, " + "young Trainer, the path to victory is fraught with " + "challenges. And if you lose a battle... well, let’s just say " + "you'll be starting from square one.\n"; + Utility::waitForEnter(); + + cout << "\nProfessor Oak: So, what do you say? Are you ready to " + "become the next Pokémon Champion?\n"; + Utility::waitForEnter(); + cout << "\n" << player.name << ": Ready as I’ll ever be, Professor!\n"; + Utility::waitForEnter(); + + cout + << "\nProfessor Oak: That’s the spirit! Now, your journey begins...\n"; + Utility::waitForEnter(); + cout << "Professor Oak: But first... let's just pretend I didn't " + "forget to set up the actual game loop... Ahem, onwards!\n"; + Utility::waitForEnter(); +} + diff --git a/Pokemon/ProfessorOak.h b/Pokemon/ProfessorOak.h new file mode 100644 index 00000000..8463d19f --- /dev/null +++ b/Pokemon/ProfessorOak.h @@ -0,0 +1,20 @@ +#include +#include "player.h" +using namespace std; + + +// ProfessorOak class definition +class ProfessorOak { +public: + string name; + + // Parameterized constructor + ProfessorOak(string p_name); + + void greetPlayer(Player& player); + + void offerPokemonChoices(Player& player); + + // New method for the main quest conversation + void explainMainQuest(Player& player); +}; \ No newline at end of file diff --git a/Pokemon/WildEncounterManager.cpp b/Pokemon/WildEncounterManager.cpp new file mode 100644 index 00000000..a9f116c8 --- /dev/null +++ b/Pokemon/WildEncounterManager.cpp @@ -0,0 +1,13 @@ +#include "WildEncounterManager.h" +#include // For rand() +#include // For time() + + +WildEncounterManager::WildEncounterManager() { + srand(time(0)); // Seed the random number generator +} + +Pokemon WildEncounterManager::getRandomPokemonFromGrass(const Grass& grass) { + int randomIndex = rand() % grass.wildPokemonList.size(); + return grass.wildPokemonList[randomIndex]; +} \ No newline at end of file diff --git a/Pokemon/WildEncounterManager.h b/Pokemon/WildEncounterManager.h new file mode 100644 index 00000000..534cc6aa --- /dev/null +++ b/Pokemon/WildEncounterManager.h @@ -0,0 +1,8 @@ +#include +#include "Grass.h" // Assuming the Grass struct is defined here + +class WildEncounterManager { +public: + Pokemon getRandomPokemonFromGrass(const Grass& grass + ); +}; diff --git a/Pokemon/header.cpp b/Pokemon/header.cpp new file mode 100644 index 00000000..f5bec35f --- /dev/null +++ b/Pokemon/header.cpp @@ -0,0 +1 @@ +#include "header.h" diff --git a/Pokemon/header.h b/Pokemon/header.h new file mode 100644 index 00000000..82876bef --- /dev/null +++ b/Pokemon/header.h @@ -0,0 +1,6 @@ +#pragma once +class header +{ + +}; + diff --git a/Pokemon/main.cpp b/Pokemon/main.cpp index c2bc7bfc..88776d2a 100644 --- a/Pokemon/main.cpp +++ b/Pokemon/main.cpp @@ -1,6 +1,27 @@ +#include"Game.h" +#include"player.h" +#include"ProfessorOak.h" #include +#include // Include this header to use numeric_limits +#include +using namespace std; int main() { + + // Continue with the main flow of the game + ProfessorOak professor("Professor Oak"); + Player player; + + // Greet the player and offer Pokemon choices + professor.greetPlayer(player); + professor.offerPokemonChoices(player); + + // Explain the main quest + professor.explainMainQuest(player); + + // Start the main game loop + Game game; + game.gameLoop(player); return 0; -} +} \ No newline at end of file diff --git a/Pokemon/player.cpp b/Pokemon/player.cpp new file mode 100644 index 00000000..02494481 --- /dev/null +++ b/Pokemon/player.cpp @@ -0,0 +1,38 @@ +// Player.cpp +#include "player.h" +#include "PokemonChoice.h" +#include "PokemonType.h" +#include "Pokemon.h" +#include "utility.h" +#include "iostream" +using namespace std; + +Player::Player() { + name = "Trainer"; + chosenPokemon = Pokemon(); // Using the default Pokemon constructor +} + +Player::Player(string p_name, Pokemon p_chosenPokemon) { + name = p_name; + chosenPokemon = p_chosenPokemon; +} + +void Player::choosePokemon(int choice) { + switch ((PokemonChoice)choice) { + case PokemonChoice::CHARMANDER: + chosenPokemon = Pokemon("Charmander", PokemonType::FIRE, 100); + break; + case PokemonChoice::BULBASAUR: + chosenPokemon = Pokemon("Bulbasaur", PokemonType::GRASS, 100); + break; + case PokemonChoice::SQUIRTLE: + chosenPokemon = Pokemon("Squirtle", PokemonType::WATER, 100); + break; + default: + chosenPokemon = Pokemon("Pikachu", PokemonType::ELECTRIC, 100); + chosenPokemon = Pokemon("Pikachu", PokemonType::ELECTRIC, 100); + break; + } + cout << "Player " << name << " chose " << chosenPokemon.name << "!\n"; + Utility::waitForEnter(); // Wait for user to press Enter before proceeding +} \ No newline at end of file diff --git a/Pokemon/player.h b/Pokemon/player.h new file mode 100644 index 00000000..25fa68f2 --- /dev/null +++ b/Pokemon/player.h @@ -0,0 +1,15 @@ +// Player.h +#include +#include "Pokemon.h" +using namespace std; + +class Player { +public: + string name; + Pokemon chosenPokemon; + + Player(); // Default constructor + Player(string p_name, Pokemon p_chosenPokemon); // Parameterized constructor + + void choosePokemon(int choice); // Method to choose a Pokemon +}; \ No newline at end of file diff --git a/Pokemon/utility.cpp b/Pokemon/utility.cpp new file mode 100644 index 00000000..eab18a0c --- /dev/null +++ b/Pokemon/utility.cpp @@ -0,0 +1,20 @@ +#include "utility.h" +#include +#include +using namespace std; + +void Utility::clearConsole() { +#ifdef _WIN32 + system("cls"); +#else + system("clear"); +#endif +} + +void Utility::waitForEnter() { + cin.get(); +} + +void Utility::clearInputBuffer(){ + cin.ignore(numeric_limits::max(), '\n'); +} \ No newline at end of file diff --git a/Pokemon/utility.h b/Pokemon/utility.h new file mode 100644 index 00000000..b8849d92 --- /dev/null +++ b/Pokemon/utility.h @@ -0,0 +1,8 @@ +#include +class Utility{ +public : + static void clearConsole(); + static void waitForEnter(); + static void clearInputBuffer(); +}; +