Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- int main()
- {
- std::vector<std::string> SplitString( const std::string& text, char delim );
- bool StringContains( const std::string& haystack, const std::string& needle );
- void examine(string itm = "");
- void smell(string itm2 = "");
- void poke(string itm3 = "");
- void WaitForEnter();
- string items[4] = {"Sword" , "Shield" , "Watch" , "Ground"};
- string userCommand = "";
- string action = "";
- string item = "";
- /* User Will be able to enter these commands
- 1. Examine
- 2. Examine [itemname]
- 3. Smell
- 4. Smell [itemname]
- 5. Poke [itemname]
- */
- cout << "Enter a command: ";
- getline(cin, userCommand);
- //validate - check if input matches a command
- //if not loop until correct input is entered
- vector<string> lstWords = SplitString(userCommand , ' ');
- if (lstWords.size() == 2)
- {
- action = lstWords[0];
- item = lstWords[1];
- }
- else if (lstWords.size() == 1)
- {
- action = lstWords[0];
- }
- while( action.compare("Examine") != 0
- && action.compare("Smell") != 0
- && action.compare("Poke") != 0 )
- {
- cout << "Enter a command: ";
- getline(cin, userCommand);
- vector<string> lstWords = SplitString(userCommand , ' ');
- if (lstWords.size() == 2)
- {
- action = lstWords[0];
- item = lstWords[1];
- }
- else if (lstWords.size() == 1)
- {
- action = lstWords[0];
- }
- }
- if (action.compare("Examine") == 0)
- {
- examine(item);
- }
- if (action.compare("Poke") == 0)
- {
- poke(item);
- }
- if (action.compare("Smell") == 0)
- {
- smell(item);
- }
- cout << "Press Enter To Continue...";
- WaitForEnter();
- }
- //Moosader Utility Functions
- //Probably want to understand how these work
- //at some point...
- bool StringContains( const std::string& haystack, const std::string& needle )
- {
- size_t notFoundLen = std::string::npos;
- return ( haystack.find( needle ) != notFoundLen );
- }
- //vector<string> lstWords = SplitString( "examine potato", ' ' );
- //for ( int i = 0; i < lstWords.size(); i++ )
- //{
- // cout << i << ": " << lstWords[i] << endl;
- //}
- std::vector<std::string> SplitString( const std::string& text, char delim )
- {
- std::vector<std::string> lstStrings;
- unsigned int begin = 0;
- for ( unsigned int i = 0; i < text.size(); i++ )
- {
- if ( text[i] == delim && i == begin )
- {
- begin++;
- }
- else if ( text[i] == delim )
- {
- lstStrings.push_back( text.substr( begin, i - begin ) );
- begin = i+1; // Start after this delimiter
- }
- if ( i == text.size() - 1 && text[i] != delim )
- {
- lstStrings.push_back( text.substr( begin, text.size() - begin ) );
- }
- }
- return lstStrings;
- }
- void examine(string item = "")
- {
- if(item.compare("") == 0)
- {
- cout << "You look around and admire the kingdom of HighRule, a totally original kingdom\n";
- }
- if(item.compare("Sword") == 0)
- {
- cout << "It's a sword, be careful, it's sharp.\n";
- }
- if(item.compare("Shield") == 0)
- {
- cout << "It's a shield.\n";
- }
- else if(item.compare("Watch") == 0)
- {
- cout << "It's a watch, the time is frozen at 10:10, seems pretty useless.\n";
- }
- else if(item.compare("Ground") == 0)
- {
- cout << "It's the ground, it's firm and dependable.\n";
- }
- else
- {
- cout << "Sorry didn't recognize that item.\n";
- }
- }
- void smell(string item = "")
- {
- if(item.compare("") == 0)
- {
- cout << "You take a deep breath, ahh the Kingdom of HighRule, it has an unusual but pleasant odor.\n";
- }
- else if(item.compare("Sword") == 0)
- {
- cout << "You sniff your sword, the sword gives you a puzzled look.\n";
- }
- else if(item.compare("Shield") == 0)
- {
- cout << "You sniff your shield, it smells of copper.\n";
- }
- else if(item.compare("Watch") == 0)
- {
- cout << "You sniff your watch, it doesn't appear to have a distinct odor.\n";
- }
- else if(item.compare("Ground") == 0)
- {
- cout << "You kneel down and sniff the ground, it smells of dirt.\n";
- }
- else
- {
- cout << "Sorry didn't recognize that item.\n";
- }
- }
- void poke(string item = "")
- {
- if(item.compare("") == 0)
- {
- cout << "Nothing to Poke.\n";
- }
- else if(item.compare("Sword") == 0)
- {
- cout << "You poke the sword, ouch, well what did you expect?.\n";
- }
- else if(item.compare("Shield") == 0)
- {
- cout << "You poke the shield, unsurprisingly the shield is unresponsive.\n";
- }
- else if(item.compare("Watch") == 0)
- {
- cout << "You poke the watch, unsurprisingly the watch is unresponsive.\n";
- }
- else if(item.compare("Ground") == 0)
- {
- cout << "You poke the ground, unsurprisingly the ground is unresponsive.\n";
- }
- else
- {
- cout << "Sorry didn't recognize that item.\n";
- }
- }
- void WaitForEnter()
- {
- while(1)
- {
- if( '\n' == getchar() )
- {
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement