diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index f56452f..1d3c3d1 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -1,26 +1,80 @@ package rocks.zipcodewilmington.tictactoe; + /** * @author leon on 6/22/18. */ + public class Board { + + Character[][] board; + boolean isWinner = false; + String winner = ""; + + public Board(Character[][] matrix) { + this.board = matrix; } public Boolean isInFavorOfX() { - return null; + return getWinner() == "X"; } public Boolean isInFavorOfO() { - return null; + return getWinner() == "O"; } public Boolean isTie() { - return null; + return getWinner() == ""; } + public String getWinner() { - return null; + + for (int i = 0; i < 3; i++) { + //checking for rows + checkValues(board[i][0], board[i][1], board[i][2]); + if (isWinner) { + return winner; + } + } + for (int i = 0; i < 3; i++) { + //checking for columns + checkValues(board[0][i], board[1][i], board[2][i]); + if (isWinner) { + return winner; + } + } + + // checking diagonal + checkValues(board[0][0], board[1][1], board[2][2]); + if (isWinner) { + return winner; + } + + checkValues(board[0][2], board[1][1], board[2][0]); + if (isWinner) { + return winner; + } + + return ""; + } + private void checkValues(Character charOne, Character charTwo, Character charThree) { + + if (charOne == charTwo && charTwo == charThree && charOne != ' ') { + if (charOne == 'X') { + isWinner = true; + winner = "X"; + } else if (charOne == 'O') { + isWinner = true; + winner = "O"; + } else { + winner = ""; + } + } + } + + }