To implement the last test, we should store the location of the placed pieces in an array. Every time a new piece is placed, we should verify that the place is not occupied, or else throw an exception:
private Character[][] board = {
{' ', ' ', ' '}, {' ', ' ', ' '},
{' ', ' ', ' '}
}; public void play(int x, int y) { if (x < 1 || x > 3) { throw new RuntimeException("X is outside board"); } else if (y < 1 || y > 3) { throw new RuntimeException("Y is outside board"); } if (board[x - 1][y - 1] != ' ') { throw new RuntimeException("Box is occupied"); } else { board[x - 1][y - 1] = 'X'; } }
We're checking whether a place that was played is occupied and, if it is not, we're changing the array entry value from empty (