Introduce the Board concept who knows the Location distribution and wich values are valid
Do not inject yet the Board object into its dependants
Moved possibleLines knowledge to TicTacToeBoard
Changed all Location.getAll() usages to use TicTacToeBoard instead
Changed all Location.getCenters() usages to use TicTacToeBoard instead
Changed all Location.getCorners() usages to use TicTacToeBoard instead
Changed all Location.getSides() usages to use TicTacToeBoard instead
Moved opposite behaviour to TicTacToeBoard (because it knows the size) and removed Location size limitation.
Added a Board reference in a game State
Use the new Board reference in State
Added back the tests for invalid locations
Hide constants in TicTacToeBoard to avoid dependencies to them
When trying to use an invalid location in a State (because of the size of the board), throw IllegalArgumentException
Fixed bug created when moving the Location validation to board
Added tests for TextRenderer to remove the knowledge of hardcoded Locations
Refactored TextRendered and added tests to be more flexible
TextRenderer renders correctly the x and y values
Added TextRenderer test to render the pieces in the correct places