/*
 * 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;
    }

}
示例#2
0
//mainfunctions of the game
void playOneGame(Boggle& boggle) {
    string input="";
    //runs until a board is generated
    while (1) {
        cout<<endl;
        cout<<"Do you want to generate a random board?: ";
        cin>>input;
        //the user wants to enter an own board
        if (input=="n") {
            //runs until the user has entered a correct board,
            while(1) {
                cout<<"Type the 16 letters to appear on the board:";
                cin>>input;
                vector<string> temp;
                temp=checkInput(input);
                if (temp.size()==16) {
                    for (int i=0; i<16; i++) {
                        boggle.addLetter(temp[i]);
                    }
                    break;
                }
                else {
                    cout<<"That is not a valid 16-letter board String. Try again."<<endl;
                }

            }
            boggle.calculateWords();
            break;
        }
        //if the user wants to autogenerate a board this i used
        if(input=="y") {
            boggle.setupBoardAuto();
            break;
        }
    }
    bool usersTurn=true;
    clearConsole();
    //runs until the user enters "n"
    while (usersTurn) {
        cout<<"it's your turn!"<<endl;
        printBoard(boggle);
        presentUserWords(boggle);
        presentUserScore(boggle);
        input="";
        cout<<"enter a word or  enter n to end your turn:";
        cin>>input;
        //end while loop
        if (input=="n") {
            usersTurn=false;
        }
        else {
            //checks if the word is correct
            if (boggle.addUserWord(input)) {
                //if it is then the score is added to the userscore
                boggle.addUserScore(input.size()-3);
                //says that you have found a new word
                presentNewWord(input);
            }
            else {
                //if it not a correct word then the error is printed out for the user
                cout<<boggle.getUserError()<<endl;
            }
        }
    }
    //prints out with how much the computer has won
    cout<<"It is my turn! now you are going down"<<endl;
    presentComputersWords(boggle);
    boggle.resetBoard();

}