In lecture today, we discussed our TicTacToe game. Clearly, the java class we have created is unwieldy, and awkward to use. In the next few classes, we will build a (gui) windows interface for playing the game, as well as a main game class that will tie all the pieces together. Throughout this process, we will give consideration to the design. 1st design principle: Our current TicTacToe.java will never call a method from the interface. The purpose of this design consideration is that we can build and add any interface that we want, and use it to run the game without having to change the game code. This allows us to re-use the code wherever we want. Decisions we made today (14 Mar) We changed setMark() from a void function to a boolean function. We added an edit so that you couldn't set a mark in a non-blank position. Any attempt to do so, would return false, to indicate that the mark was not made. Otherwise, the function returns true. Things to revisit in the future (maybe): 1) Today in class, we created a method called switchTurn(). This method causes the current player to alternate between player 'X' and player 'O'. We had setMark() call switchTurn() only if it was able to successfully add the mark. We also realized that we don't have to pass the character when checking for a win, if the instance variable "who" is not changed (via switchTurn()) before we check for the win. Our current placement of the switchTurn() method call switches the "who" too early to permit this. Maybe we should remove the call, and let the game player (whichever module that will be) perform the call to switchTurn(). Then we could eliminate the character parameter in all of our check win methods (since the "who" would no longer be out of sync.)