From c5af5ed3310dbf956432eb8590e42ca96a906917 Mon Sep 17 00:00:00 2001 From: Zach Date: Thu, 1 Jul 2021 20:34:30 -0400 Subject: [PATCH] All test cases passed. Tic Tac Torture --- pom.xml | 12 ++++ .../zipcodewilmington/tictactoe/Board.java | 60 +++++++++++++++++-- 2 files changed, 68 insertions(+), 4 deletions(-) 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..fb0157f 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -4,23 +4,75 @@ * @author leon on 6/22/18. */ public class Board { + private Character[][] matrix; + public Board(Character[][] matrix) { + this.matrix = matrix; } public Boolean isInFavorOfX() { - return null; + int xCount = 0; + int yCount = 0; + Character[][] board = this.matrix; + + if(isTie()){ + return false; + } + for(int i = 0; i < 3; i++){ + for(int j = 0; j < 3; j++){ + //Check Rows + if(board[i][j] == 'X'){ + xCount++; + } else if(board[i][j] == 'O'){ + yCount++; + } + } + } + return xCount > yCount; } public Boolean isInFavorOfO() { - return null; + return !isTie() && isInFavorOfX() == false; } public Boolean isTie() { - return null; + return getWinner() == ""; } public String getWinner() { - return null; + Character[][] board = this.matrix; + + + //Check Diagonal + if(board[0][0] == 'X' && board[1][1] == 'X' && board[2][2] == 'X'){ + return "X"; + } else if(board[2][0] == 'X' && board[1][1] == 'X' && board[0][2] == 'X'){ + return "X"; + } else if(board[0][0] == 'O' && board[1][1] == 'O' && board[2][2] == 'O'){ + return "O"; + } else if(board[2][0] == 'O' && board[1][1] == 'O' && board[0][2] == 'O'){ + return "O"; + } + + //Check Horizontal + for(int i = 0; i < 3; i++){ + //Check Horizontal, Then Vertical + if(board[i][0] == 'X' && board[i][1] == 'X' && board[i][2] == 'X'){ + return "X"; + } else if(board[i][0] == 'O' && board[i][1] == 'O' && board[i][2] == 'O'){ + return "O"; + } + } + + //Check Vertical + for(int i = 0; i < 3; i++){ + if(board[0][i] == 'X' && board[1][i] == 'X' && board[2][i] == 'X'){ + return "X"; + } else if(board[0][i] == 'O' && board[1][i] == 'O' && board[2][i] == 'O'){ + return "O"; + } + } + return ""; } }