diff --git a/pom.xml b/pom.xml
index 3b8d043..09a1b58 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
+
+ 14
+ 14
+
+
+
+
junit
diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java
index f56452f..e83ee05 100644
--- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java
+++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java
@@ -1,26 +1,117 @@
package rocks.zipcodewilmington.tictactoe;
+import java.sql.Array;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
/**
* @author leon on 6/22/18.
*/
public class Board {
- public Board(Character[][] matrix) {
+ private Character [][] matrix;
+ public Board(Character[][] matrix) { this.matrix = matrix;
}
public Boolean isInFavorOfX() {
- return null;
+ int xWins= 0;
+ int xWinsRow2= 0;
+ int xWinsRow3 = 0;
+ int xWinsColumn = 0;
+ int xWinsColumn2 = 0;
+ int xWinsColumn3 = 0;
+
+ for (int i = 0; i < 3; i++) {
+ if (matrix[0][i] == 'X') {
+ xWins++;
+ }
+ }
+ for (int i = 0; i < 3; i++) {
+ if(matrix[1][i] == 'X') {
+ xWinsRow2++;
+ }
+ }
+ for (int i = 0; i < 3; i++) {
+ if(matrix[2][i] == 'X') {
+ xWinsRow3++;
+ }
+ }
+
+ for (int i = 0; i < 3; i++) {
+ if(matrix[i][0] == 'X') {
+ xWinsColumn++;
+ }
+ }
+ for (int i = 0; i < 3; i++) {
+ if(matrix[i][1] == 'X') {
+ xWinsColumn2++;
+ }
+ }
+ for (int i = 0; i < 3; i++) {
+ if(matrix[i][2] == 'X') {
+ xWinsColumn3++;
+ }
+ }
+
+ int[] checkFor3 = {xWins,xWinsRow2,xWinsRow3,xWinsColumn,xWinsColumn2,xWinsColumn3};
+ for (int i = 0; i < 6 ; i++) {
+ if (checkFor3[i] == 3){
+ return true;
+ }
+ }
+ //had to repeat getWinner Code here or else the method returns 'false' for diagonal wins
+ if (matrix [0][0]== 'X' && matrix[1][1] =='X' && matrix[2][2] == 'X'){
+ return true;
+ } else if (matrix [0][2]== 'X' && matrix[1][1] =='X' && matrix[2][0] == 'X') {
+ return true;
+ }
+ return false;
}
public Boolean isInFavorOfO() {
- return null;
+ return !isTie() && !isInFavorOfX();
}
public Boolean isTie() {
- return null;
+ int xCount = 0;
+ int oCount = 0;
+ for (int i = 0; i < 3; i++) {
+ for (int j = 0; j < 3; j++) {
+ if (matrix[i][j] == 'X'){
+ xCount++;
+ }else if (matrix[i][j]== 'O'){
+ oCount++;
+ }
+ }
+ }
+ return xCount==5;
}
public String getWinner() {
- return null;
+ // O 1 2 ----
+ // 3 4 5 ----- 4 = i[1] j[1]
+ // 6 7 8 ----- 7 = i[2] j[1]
+ String winner = "";
+ if (isInFavorOfX()){
+ winner = "X";
+ }
+ if (isInFavorOfO()){
+ winner = "O";
+ }
+ if (matrix [0][0]== 'X' && matrix[1][1] =='X' && matrix[2][2] == 'X'){
+ winner = "X";
+ }
+ if (matrix [0][2]== 'X' && matrix[1][1] =='X' && matrix[2][0] == 'X'){
+ winner = "X";
+ }
+ if (matrix [0][0]== 'O' && matrix[1][1] =='O' && matrix[2][2] == 'O'){
+ winner = "O";
+ }
+ if (matrix [0][2]== 'O' && matrix[1][1] =='O' && matrix[2][0] == 'O'){
+ winner = "O";
+ }
+ return winner;
}
}