I'm having issues with my code. I am trying to build a game and it somehow gives errors when reaching the main loops. I will show to code and the errors I'm getting.
Just a small note, the point when choosing option 1 and playing the game is that the game loops after the correct answer has been given and presents the player with a second random word, and keeps doing this until the player writes 'quit'.
This is the code:
Code:#include <iostream> #include <string> #include <cstdlib> #include <ctime> using namespace std; int main() { enum fields {WORD, HINT, NUM_FIELDS}; const int NUM_WORDS = 3; const string WORDS[NUM_WORDS][NUM_FIELDS] = { {"jumble1", "First word."}, {"jumble2", "Second word."}, {"jumble3", "Third word."} }; srand(static_cast<unsigned int>(time(0))); int choice = (rand() % NUM_WORDS); string theWord = WORDS[choice][WORD]; string theHint = WORDS[choice][HINT]; string jumble = theWord; int length = jumble.size(); for (int i = 0; i < length; ++i) { int index1 = (rand() % length); int index2 = (rand() % length); char temp = jumble[index1]; jumble[index1] = jumble[index2]; jumble[index2] = temp; } int choice; bool choiceNotMade = true; while (choiceNotMade) { cout << "[1] Play\n"; cout << "[2] Credits\n"; cout << "[3] Quit\n\n"; cout << "Your choice: "; cin >> choice; } switch (choice) { case 1: cout << "Unscramble the letters to make a word.\n"; cout << "Enter 'hint' for a hint.\n"; cout << "Enter 'quit' to quit the game.\n\n"; cout << "The jumble is: " << jumble; string guess; cout << "\n\nYour guess: "; cin >> guess; while ((guess != theWord) && (guess != "quit")) { if (guess == "hint") { cout << theHint; } else { cout << "That's not the right word."; } cout << "\n\nYour guess: "; cin >> guess; } if (guess == theWord) { cout << "\nYou guessed it!\n"; } cout << "\nThank you for playing.\n"; system("Pause"); choiceNotMade = false; break; case 2: cout << "\n\nThis game has been made by:\n\n"; choiceNotMade = false; break; case 3: cout << "Program will exit"; exit(1); default: cout << "\nYou did not pick a valid option.\n\n"; choiceNotMade = false; break; } return 0; }
And this is the error:
Code:word_jumble.cpp: In function `int main()': word_jumble.cpp:32: error: redeclaration of `int choice' word_jumble.cpp:17: error: `int choice' previously declared here word_jumble.cpp:83: error: jump to case label word_jumble.cpp:53: error: crosses initialization of `std::string guess' word_jumble.cpp:88: error: jump to case label word_jumble.cpp:53: error: crosses initialization of `std::string guess' word_jumble.cpp:92: error: jump to case label word_jumble.cpp:53: error: crosses initialization of `std::string guess' word_jumble.cpp:83: warning: destructor needed for `guess' word_jumble.cpp:83: warning: where case label appears here word_jumble.cpp:83: warning: (enclose actions of previous case statements requiring destructors in their own scope.) word_jumble.cpp:88: warning: destructor needed for `guess' word_jumble.cpp:88: warning: where case label appears here word_jumble.cpp:92: warning: destructor needed for `guess' word_jumble.cpp:92: warning: where case label appears here word_jumble.cpp:100:2: warning: no newline at end of file make[2]: *** [build/Debug/MinGW-Windows/word_jumble.o] Error 1 make[1]: *** [.build-conf] Error 2 make: *** [.build-impl] Error 2




Reply With Quote