title: How to handle class visibility/access correctly
body: <p>I'm designing a simple game and I'm not sure how to correctly handle the access and relations between classes. E.g:</p>
  
  <p>Class Game - method Start that will initialiaze objects (fields) Player, CPUPlayer, Board.</p>
  
  <p>Player/CPUPlayer contains a method "Place a pawn" but they would need to access the Board object to check for coordinates. </p>
  
  <p>But they do not see the Board object. Does it mean I need to pass the Board object reference (or any other objects) in their constructor?</p>