diff --git a/pom.xml b/pom.xml index 3b8d043..e20c12a 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,18 @@ rocks.zipcodewilmington tic-tac-toe 1.0 + + + + org.apache.maven.plugins + maven-compiler-plugin + + 17 + 17 + + + + junit diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index f56452f..3282c62 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -1,26 +1,123 @@ package rocks.zipcodewilmington.tictactoe; +import java.io.StringReader; + /** * @author leon on 6/22/18. */ public class Board { - public Board(Character[][] matrix) { + + + private Character[][] matrix; // created instance variable + + public Board(Character[][] matrix) { // constructor + this.matrix = matrix; // initialized instance variable } + +// work in progress MADE SOME PROGRESS + public Boolean isInFavorOfX() { - return null; + + /* example + { col + row{'X', 'O', 'X'}, + {'O', 'O', 'X'}, + {'X', 'X', 'O'} + + + + 8 Ways to win + row1 [0][0],[0][1],[0][2] + row2 [1][0],[1][1],[1][2] + row3 [2][0],[2][1],[2][2] + -------------------------- + col1 [0][0],[1][0],[2][0] + col1 [0][1],[1][1],[2][1] + col1 [0][2],[1][2],[2][2] + ---------------------------- + diag1[0][0],[1][1],[2][2] + diag2[0][2],[1][1],[2][0] + } + */ + + Boolean isInFavorOfX = false; + + + for (int row = 0; row < matrix.length; row++) { + for (int col = 0; col < matrix[row].length; col++) { + + if(matrix[row][0] == 'X' && matrix[row][1] == 'X' && matrix[row][2] == 'X'){//horizontal win + isInFavorOfX = true; + + }else if(matrix[0][col] == 'X' && matrix[1][col] == 'X' && matrix[2][col] == 'X'){//vertical win + isInFavorOfX =true; + + }else if(matrix[0][0] == 'X' && matrix[1][1] == 'X' && matrix[2][2] == 'X'){//diagonal 1 win + isInFavorOfX = true; + + }else if(matrix[0][2] == 'X' && matrix[1][1] == 'X' && matrix[2][0] == 'X'){//diagonal 2 win + isInFavorOfX =true; + + } + + } + } + + return isInFavorOfX; } + public Boolean isInFavorOfO() { - return null; + + Boolean isInFavorOfO = false; + + + for (int row = 0; row < matrix.length; row++) { + for (int col = 0; col < matrix[row].length; col++) { + + if(matrix[row][0] == 'O' && matrix[row][1] == 'O' && matrix[row][2] == 'O'){ //horizontal wins + isInFavorOfO = true; + + }else if(matrix[0][col] == 'O' && matrix[1][col] == 'O' && matrix[2][col] == 'O'){//vertical wins + isInFavorOfO =true; + + }else if(matrix[0][0] == 'O' && matrix[1][1] == 'O' && matrix[2][2] == 'O'){ //diagonal 1 win + isInFavorOfO = true; + + }else if(matrix[0][2] == 'O' && matrix[1][1] == 'O' && matrix[2][0] == 'O'){//diagonal 2 win + isInFavorOfO =true; + + } + + } + } + + + + + return isInFavorOfO; } public Boolean isTie() { - return null; + + + return !(isInFavorOfO() || isInFavorOfX()); } public String getWinner() { - return null; + String winner = ""; + + if(isInFavorOfX()){ + winner = "X"; + + }else if(isInFavorOfO()){ + winner = "O"; + + } + + + return winner; } }