diff --git a/pom.xml b/pom.xml
index 3b8d043..135aaa3 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
+
+ 15
+ 15
+
+
+
+
junit
diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java
index f56452f..c20f874 100644
--- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java
+++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java
@@ -4,23 +4,95 @@
* @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 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++;
+ }
+ }
+ }
+ if(isTie().equals(true)){
+ return false;
+ } else if(xCount > oCount) {
+ return true;
+ } return false;
}
public Boolean isInFavorOfO() {
- 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++;
+ }
+ }
+ }
+ if(isTie().equals(true)){
+ return false;
+ } else if(xCount < oCount) {
+ return true;
+ } return false;
}
public Boolean isTie() {
- return null;
+ if(getWinner().equals("")){
+ return true;
+ }
+ return false;
}
public String getWinner() {
- return null;
+ String winner = "";
+ int row = 0;
+ int column = 0;
+ int k = 0; //next row or column
+ boolean xIsWinner = true;
+ boolean oIsWinner = true;
+ for (int i = 0; i < 3; i++) {
+ //rows
+ if(matrix[i][0].equals('X') && matrix[i][1].equals('X') && matrix[i][2].equals('X')) {
+ winner = "X";
+ break;
+ } else if(matrix[i][0].equals('O') && matrix[i][1].equals('O') && matrix[i][2].equals('O')) {
+ winner = "O";
+ break;
+ //columns
+ } else if(matrix[0][i].equals('X') && matrix[1][i].equals('X') && matrix[2][i].equals('X')) {
+ winner = "X";
+ break;
+ } else if(matrix[0][i].equals('O') && matrix[1][i].equals('O') && matrix[2][i].equals('O')) {
+ winner = "O";
+ break;
+ //forward diagonal
+ } else if(matrix[0][0].equals('X') && matrix[1][1].equals('X') && matrix[2][2].equals('X')) {
+ winner = "X";
+ break;
+ } else if(matrix[0][0].equals('O') && matrix[1][1].equals('O') && matrix[2][2].equals('O')) {
+ winner = "O";
+ break;
+ //reverse diagonal
+ } else if(matrix[0][2].equals('X') && matrix[1][1].equals('X') && matrix[2][0].equals('X')) {
+ winner = "X";
+ break;
+ } else if(matrix[0][2].equals('O') && matrix[1][1].equals('O') && matrix[2][0].equals('O')) {
+ winner = "O";
+ break;
+ //tie
+ } else winner = "";
+ }
+ return winner;
}
-
}
+
diff --git a/src/test/java/rocks/zipcodewilmington/tictactoe/PlayerTies2Test.java b/src/test/java/rocks/zipcodewilmington/tictactoe/PlayerTies2Test.java
index 9193c60..f91b320 100644
--- a/src/test/java/rocks/zipcodewilmington/tictactoe/PlayerTies2Test.java
+++ b/src/test/java/rocks/zipcodewilmington/tictactoe/PlayerTies2Test.java
@@ -15,9 +15,9 @@ public class PlayerTies2Test {
public void setup() {
// Given
this.board = new Board(new Character[][]{
- {'X', 'X', 'O'},
- {'O', 'X', 'X'},
- {'X', 'O', 'O'}
+ {'X', 'X', 'O'}, //[0][0], [0][1], [0][2]
+ {'O', 'X', 'X'}, //[1][0], [1][1], [1][2]
+ {'X', 'O', 'O'} //[2][0], [2][1], [2][2]
});
}