When debugging, I found out that once setLetter() (class Game) sets the value to letter[x] array, it gets reset once it's out of the function checkPlay(). So showLetter() prints nothing every time. I cannot figure out why the array keeps resetting to " ". Any help would be great!
You are passing the object 'board' by value and not by reference. Passing by value means it creates a separate copy of that data type for the function parameter and all of that data is lost once it leaves the function. Passing by reference will use the address of the original object so it keeps all of the changes.
You will want to change your function parameters to void Player::checkPlay(int player, std::string choice, Game &board)
I also suggest looking up Passing by Value vs Passing by Reference to clarify things.
i would also make the string pass by reference because since your not editing it it will save memory (no point in copying an object of a class if you dont have to)