示例#1
0
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;
}
示例#3
0
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;
}
示例#4
0
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;
	}
}
示例#6
0
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
示例#8
0
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;
}