So once it has been determined how an object fits into a program, it's member data and member functions can be determined. The question becomes how to determine what role within a program an object is will play. The role that an object plays within a program should be able to be defined in one to three short sentences. OR Arbitrates turns in a multi-user game OR does all data type conversions within program OR easy interface to reading, writing, and parsing files. Drawing pictures that describe the functionality of objects can be a big help when designing a program.
Pictures can often describe the relationship between objects better than a paragraph of words.
Otherwise it wouldn't be a very exciting game. When the Player and a Monster are Battling they battle through a third object, the BattleMgr. The BattleMgr decides which Battler acts first, and eventually, which battler wins. So the Player object and the monster object need to know about the BattleMgr, and the BattleMgr needs to know about both the Player and the Monster. We have already decided on the attributes of a Battler, so let's add these to the picture.