Microsoft interview question

How would you design and implement battleship?