title: Object Oriented Design Questions
body: <p>I am going to develop a Tic-Tac-Toe game using Java(or maybe other OO Languages).  Now I have a picture in my mind about the general design.</p>
  
  <p>Interface: 
  Player, then I will be able to implement a couple of Player classes based on how I want the opponent to be, for example, random player, intelligent player, etc.</p>
  
  <p>Classes: 
  Board class, with a two-dimensional array of integers, 0 indicates open, 1 indicates me, -1 indicates opponent.  The evaluation function will be in here as well, to return the next best move based on the current board arrangement and whose turn it is.</p>
  
  <p>Referee class, which will create instance of the Board and two player instances, then get the game started.</p>
  
  <p>This is a rough idea of my OO design.  Could anybody give me any critiques please?  I find this is really beneficial.  Thank you very much.</p>