/** * @brief promptplayerInput asks the player to type in a valid word * @param boggle */ void promptplayerInput(Boggle& boggle){ Lexicon lex("EnglishWords.dat"); string tempWord; cout << "It's your turn!" << endl; printGrid(boggle); printPlayerWords(boggle); cout << "Your score: " << boggle.getPlayerScore() << endl; cout << "Type a word (or press 1 to quit): "; cin >> tempWord; //makes the str uppercase transform(tempWord.begin(), tempWord.end(),tempWord.begin(), ::toupper); clearConsole(); while(tempWord != "1"){ printGrid(boggle); if(!lex.contains(tempWord)){ cout << "Not a word in the dictionary" << endl; } else if (!(boggle.getPlayerWords().find(tempWord) != boggle.getPlayerWords().end())) { cout << "Word already used" << endl; } else if ((tempWord.size() < 4)) { cout << "Word is too small" << endl; } else if (!(boggle.findWordInGrid(tempWord))) { cout << "That word can't be formed on this board." << endl; } else { boggle.updateScore(tempWord); boggle.insertplayerWord(tempWord); } printPlayerWords(boggle); cout << endl; cout << "Your score: " << boggle.getPlayerScore() << endl; cout << "Type a word (or press 1 to quit): "; cin >> tempWord; clearConsole(); //makes the str uppercase transform(tempWord.begin(), tempWord.end(),tempWord.begin(), ::toupper); } }
/* * Plays one game of Boggle using the given boggle game state object. */ void playOneGame(Boggle& boggle) { boggle.resetBoard(); cout << "Would you like to randomize the board? (y/n)" << endl; string userChoice; getline(cin,userChoice); if(toLowerCase(trim(userChoice)) == "y"){ boggle.randomizeBoard(); }else{ string boardSeq; do { cout << "Please enter a valid sequence of letters to fill the board with" << endl; getline(cin,boardSeq); } while (!boggle.checkValidBoardSeq(boardSeq)); boggle.setBoard(boardSeq); } string guessedWord; do { clearConsole(); cout << "It's your turn!" << endl; boggle.printBoard(); boggle.printGuessedWords(); cout << "Your score: " + to_string(boggle.getPlayerScore()) << endl; cout << "Type a word (or press Enter to end your turn): "; getline(cin,guessedWord); if (boggle.checkGuessedWord(guessedWord)) { cout << "You found a new word! \"" + toUpperCase(guessedWord) + "\"" << endl; } } while (!guessedWord.empty()); cout << "It's my turn!" << endl; boggle.printComputerWords(); cout << "My score: " + to_string(boggle.getComputerScore()) << endl; if (boggle.getComputerScore() > boggle.getPlayerScore()) { cout << "Ha ha ha, I destroyed you. Better luck next time, puny human!" << endl; } else { cout << "Screw you... Puny human!" << endl; } }
/** * @brief printComputerWords prints the words that computer found and the score that it got * @param boggle */ void printComputerWords(Boggle& boggle){ boggle.computerFind(); set<string> words = boggle.getComputerWords(); clearConsole(); cout << "It's my turn!" << endl; cout << "My words (" << words.size() << "): " << "{"; for(set<string>::iterator it = words.begin(); it != words.end(); it++){ cout << "\""<< *it << "\","; } cout << "}"; cout << "\nMy score: " << boggle.getComputerScore() << endl; //If the computer has won the game, taunt the player if(boggle.getComputerScore() > boggle.getPlayerScore()){ cout << "Ha ha ha, I destroyed you. Better luck next time, puny human!" << endl; } }