package com.github.agsimmons.jtictactoe.server;

public class GameBoard {

    private final int DEFAULT_DIMENSION = 3;

    private int[][] board;

    public GameBoard() {
        board = new int[DEFAULT_DIMENSION][DEFAULT_DIMENSION];
    }

    public GameBoard(int dimension) {
        board = new int[dimension][dimension];
    }

    public String drawBoardState() {
        String boardState = " 012\n";

        for (int y = 0; y < board.length; y++) {
            boardState += y;
            for (int x = 0; x < board.length; x++) {
                switch (board[x][y]) {
                    case 1:
                        boardState += "X";
                        break;
                    case 2:
                        boardState += "O";
                        break;
                    default:
                        boardState += " ";
                        break;
                }
            }
            boardState += "\n";
        }

        return boardState;
    }

    public void makeMove(int player, int x, int y) {
        board[x][y] = player;
    }

    public int checkForWinner() {

        // Player One
        // Horizontal
        if (board[0][0] == 1 && board[1][0] == 1 && board[2][0] == 1) {
            return 1;
        } else if (board[0][1] == 1 && board[1][1] == 1 && board[2][1] == 1) {
            return 1;
        } else if (board[0][2] == 1 && board[1][2] == 1 && board[2][2] == 1) {
            return 1;
        }
        // Vertical
        if (board[0][0] == 1 && board[0][1] == 1 && board[0][2] == 1) {
            return 1;
        } else if (board[1][0] == 1 && board[1][1] == 1 && board[1][2] == 1) {
            return 1;
        } else if (board[2][0] == 1 && board[2][1] == 1 && board[2][2] == 1) {
            return 1;
        }
        // Diagonal
        if (board[0][0] == 1 && board[1][1] == 1 && board[2][2] == 1) {
            return 1;
        } else if (board[2][0] == 1 && board[1][1] == 1 && board[0][2] == 1) {
            return 1;
        }

        // Player Two
        // Horizontal
        if (board[0][0] == 2 && board[1][0] == 2 && board[2][0] == 2) {
            return 2;
        } else if (board[0][1] == 2 && board[1][1] == 2 && board[2][1] == 2) {
            return 2;
        } else if (board[0][2] == 2 && board[1][2] == 2 && board[2][2] == 2) {
            return 2;
        }
        // Vertical
        if (board[0][0] == 2 && board[0][1] == 2 && board[0][2] == 2) {
            return 2;
        } else if (board[1][0] == 2 && board[1][1] == 2 && board[1][2] == 2) {
            return 2;
        } else if (board[2][0] == 2 && board[2][1] == 2 && board[2][2] == 2) {
            return 2;
        }
        // Diagonal
        if (board[0][0] == 2 && board[1][1] == 2 && board[2][2] == 2) {
            return 2;
        } else if (board[2][0] == 2 && board[1][1] == 2 && board[0][2] == 2) {
            return 2;
        }

        return -1;
    }
}

@@ -395,16 +395,17 @@
 tate = %22
+ 
  012%5Cn%22;
@@ -482,16 +482,22 @@
 ate += y
+ + %22 %22
 ;%0A      

Improve visual formatting of game board