I am just trying to help, but not really sure of what I am saying…
I THINK the source of your “problem” is that, in the very definition of
EGuessStatus FBullCowGameClass::CheckGuessValidity(FString Guess),
what is returned is a single, simple value of the ‘EGuessStatus’ (enumerator) type.
ONLY ‘Not_Isogram’, or ONLY ‘Not_Lowercase’, or ONLY ‘Wrong_Length’ is returned when CheckGuessValidity(FString Guess) is run.
So you could do something like maybe instead of having
“EGuessStatus” //FBullCowGameClass::CheckGuessValidity(FString Guess)
use some TMap that stores all errors that Guess generates.
TMap <FString,bool> ErrorsMap; //similar to the ‘TMap <char, bool> LetterSeen;’ we already have in the game
Then on the main.cpp Switch/case part, each case would not output any cout"text", but change second column of the map (the bool) to TRUE,
and finally, right after the Switch, you could output cout"error1", cout “error2”, cout “error3” according to a for loop checking all the bools inside the TMap?
I am really too sleepy to try this myself now. But please, reply with your code if this works. Or if you find any other solution, as it is an interesting question.