void PlayGame () { //////testing phrase generation if(mPharseTestOn){ DictionaryTester::MakePhrases(myDict); } /////////////end test //local variables/objects PhraseGame::Guess nextGuess; //use dictionary to make phrase string phrase; int numWords = swansonUtil::GetRandomInRange( MIN_WORDS , MAX_WORDS ); for ( int i = 0 ; i < numWords ; ++i ) { phrase += myDict.GetRandomWord() + " "; } phrase.erase( phrase.length() - 1 , 1 ); //remove extra space //testing line wrap //phrase = "this is my big dumb very long long long string to bge guessed lets see how it goes it is much longer than it should be"; //instance a new game object PhraseGame myGame( myDict.GetSet() , phrase , MAX_GUESSES ); //initialize game state and display welcome screen display( MAX_GUESSES , myGame.GetRevealPhrase() , STARTGAME_MESSAGE , myGame.GuessesMade() ); //help text for debug if ( mDebugOn ) DebugDisplay(myGame.GetSecretPhrase()); do { //get a guess from user nextGuess = myGame.NextGuess(); //display results display( nextGuess.guesesRemaining , nextGuess.revealedPhrase , nextGuess.message , myGame.GuessesMade() ); //help text for debug if ( mDebugOn ) DebugDisplay(myGame.GetSecretPhrase()); //keep guessing if not solved, or remaining guesses } while ( nextGuess.revealedPhrase != myGame.GetSecretPhrase() && nextGuess.guesesRemaining > 0 ); //output final results if ( myGame.GetRevealPhrase() == myGame.GetSecretPhrase() ) { display( nextGuess.guesesRemaining , nextGuess.revealedPhrase , WON_GAME , myGame.GuessesMade() ); } else { display( nextGuess.guesesRemaining , nextGuess.revealedPhrase , LOST_GAME , myGame.GuessesMade() ); EndGameDisplay( phrase , myGame.GuessesMade() ); } }