void FBullCowGame::Reset(int32 Length) { CurrentAttempt = 1; HiddenWord = ""; srand(std::time(NULL)); while (HiddenWord.length() != Length || !IsIsogram(HiddenWord)) { HiddenWord = Words[rand() % 173529]; } bHasWon = false; }
EWordStats FBullCowGame::ChechGuessValidity(std::string x) const { if (!IsIsogram(x))//not isogram return EWordStats::Not_Isogram; else if (!IsLowerCase(x))//CapsLock ON return EWordStats::N_LCase; else if (x.length() != GetHiddenWordLength())//wrong size return EWordStats::To_Wrong; else//ok return EWordStats::OK; }
EWordStatus FBullCowGame::CheckGuessValidity(FString Guess) const { if (!IsIsogram(Guess)) { return EWordStatus::Not_Isogram; } if (Guess.length() != GetHiddenWordLength()) { return EWordStatus::Wrong_Lenght; } if (!IsLowerCase(Guess)) { return EWordStatus::Not_Lowercase; } return EWordStatus::OK; }
EGuessValidity FBullCowGame::Validate(FString word) { if (word == "") return EGuessValidity::Empty; if (word.length() != currentWord.length()) return EGuessValidity::WrongLength; const FString validChars = "abcdefghijklmnopqrstuvwxyz"; for (int32 c = 0; c < word.length(); c++) { char ch = word[c]; if (validChars.find(ch) == std::string::npos) return EGuessValidity::BadChars; } if (!IsIsogram(word)) return EGuessValidity::NotIsogram; return EGuessValidity::OK; }
EGuessStatus FBullCowGame::CheckGuessValidity(FString *Guess) const { if ((*Guess).length() != GetHiddenWordLength()) { return EGuessStatus::WRONG_LENGTH; } else if (!IsIsogram(Guess)) { return EGuessStatus::NOT_ISOGRAM; } else if (!IsLowercase(Guess)) { return EGuessStatus::NOT_LOWERCASE; } else { return EGuessStatus::OK; } }
EGuessStatus FBullCowGame::CheckGuessValidity(FString Guess) const { if (!IsIsogram(Guess)) // if the guess isn't an isogram { return EGuessStatus::Not_Isogram; } else if (!IsLowercase(Guess)) // if the guess isn't all lowercase { return EGuessStatus::Not_Lowercase; } else if (Guess.length() != GetHiddenWordLength()) // if the guess length is wrong { return EGuessStatus::Wrong_Length; } else { return EGuessStatus::OK; } }
EGuessStatus FBullCowGame::CheckGuessValidity(FString ThisGuess) const /* Checks the user guess for validity - checks if an isogram - checks if all lower-case - checks if correct length Returns error code if fails any of those checks */ { if (!IsIsogram(ThisGuess)) { // if the guess is not an isogram return EGuessStatus::Not_Isogram; } else if (!IsLowercase(ThisGuess)) { // if the guess is not lower-case return EGuessStatus::Not_Lowercase; } else if (ThisGuess.length() != GetHiddenWordLength()) { // if the guess is different length from hidden word then return error return EGuessStatus::Wrong_Length; }; return EGuessStatus::OK; // TODO Later make actual error }; // CheckGuessValidity
EGuessStatus FBullCowGame::GetGuessStatus(FString Guess) const { if (!IsAlpha(Guess)) return EGuessStatus::HAS_NON_LETTERS; else if (!IsIsogram(Guess)) return EGuessStatus::NOT_ISOGRAM; else if (Guess.length() != HiddenWord.length()) return EGuessStatus::INVALID_LENGTH; else return EGuessStatus::OK; }