diff --git a/pom.xml b/pom.xml index 3b8d043..2914565 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 + + 11 + 11 + + + + junit diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index f56452f..16982b4 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -1,26 +1,109 @@ package rocks.zipcodewilmington.tictactoe; +import java.util.Arrays; + /** * @author leon on 6/22/18. */ public class Board { + private Character[][] matrix; + public Board(Character[][] matrix) { + this.matrix = matrix; } public Boolean isInFavorOfX() { - return null; + Character[] rowOfX = {'X', 'X', 'X'}; + Character[] horizontal = new Character[3]; + Character[] vertical = new Character[3]; + Character[] diagonal = new Character[3]; + //Testing horizontally + for (int i = 0; i < 3; i++) { + horizontal = this.matrix[i]; + if(Arrays.equals(horizontal,rowOfX)) { + return true; + } + } + + //Testing vertically + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + vertical[j] = this.matrix[j][i]; + } + if(Arrays.equals(vertical,rowOfX)){ + return true; + }; + } + //Testing diagonally forward + for (int i = 0; i < 3; i++) { + diagonal[i] = this.matrix[i][i]; + } + if(Arrays.equals(diagonal,rowOfX)) { + return true; + } + //Testing diagonally backward + for (int i = 0; i < 3; i++) { + diagonal[i] = this.matrix[i][2-i]; + } + if(Arrays.equals(diagonal,rowOfX)){ + return true; + } + return false; } public Boolean isInFavorOfO() { - return null; + Character[] rowOfO = {'O', 'O', 'O'}; + Character[] horizontal = new Character[3]; + Character[] vertical = new Character[3]; + Character[] diagonal = new Character[3]; + + //Testing horizontally + for (int i = 0; i < 3; i++) { + horizontal = this.matrix[i]; + if(Arrays.equals(horizontal,rowOfO)) { + return true; + } + } + + //Testing vertically + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + vertical[j] = this.matrix[j][i]; + } + if(Arrays.equals(vertical,rowOfO)){ + return true; + }; + } + + //Testing diagonally forward + for (int i = 0; i < 3; i++) { + diagonal[i] = this.matrix[i][i]; + } + if(Arrays.equals(diagonal,rowOfO)) { + return true; + } + //Testing diagonally backward + for (int i = 0; i < 3; i++) { + diagonal[i] = this.matrix[i][2-i]; + } + if(Arrays.equals(diagonal,rowOfO)){ + return true; + } + return false; } public Boolean isTie() { - return null; + return this.isInFavorOfO() == this.isInFavorOfX(); } public String getWinner() { - return null; + if (this.isInFavorOfX()){ + return "X"; + } else if(this.isInFavorOfO()){ + return "O"; + } else { + return ""; + } } }