Hi,
Have been working on understanding this. The key point that I was tripped up on was Const stops a member function from changing any class data.
The confusion came from the naming of public and private areas within the class. Just because GetCurrentTry() has become GetCurrentTry() const, does not mean we cannot change int MyCurrentTry. CheckGuessValidity will change MyCurrentTry(as Ben mentioned); a member function which is not const.
To summarise, getters should be const, and it seems like logic can be dealt with in other ways (like the upcoming constructor?).