From a15f1cba9505264c2a9ac279dbc492c04b5dd030 Mon Sep 17 00:00:00 2001 From: Manny Date: Sat, 3 Jul 2021 01:53:59 -0400 Subject: [PATCH 1/4] Saving progress --- .../zipcodewilmington/tictactoe/Board.java | 69 ++++++++++++++++++- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index f56452f..3b5cff3 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -1,26 +1,89 @@ package rocks.zipcodewilmington.tictactoe; +import java.io.Console; + /** * @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 trackerO = 0; + int trackerX = 0; + Character[][] board = this.matrix; + + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (board[i][j] == 'O') { + trackerO++; + } else if (board[i][j] == 'X') { + trackerX++; + } + } + } + return trackerX > trackerO; } public Boolean isInFavorOfO() { - return null; + int trackerO = 0; + int trackerX = 0; + Character[][] board = this.matrix; + + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (board[i][j] == 'O') { + trackerO++; + } else if (board[i][j] == 'X') { + trackerX++; + } + } + } + return trackerX < trackerO; } public Boolean isTie() { + + return null; } public String getWinner() { - return null; + + Character[][] board = this.matrix; + String winner = ""; + //Check horizontals (i = outer) (j = inner) + // 0 [ 0 1 2 ], + // 1 [ 0 1 2 ], + // 2 [ 0 1 2 ] + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + if(board[0][0] == 'O' && board[0][1] == 'O' && board[0][2] == 'O') { + winner = "O"; + } else if(board[1][0] == 'O' && board[1][1] == 'O' && board[1][2] == 'O') { + winner = "O"; + } else if(board[2][0] == 'O' && board[2][1] == 'O' && board[2][2] == 'O') { + winner = "O"; + } if(board[0][0] == 'X' && board[0][1] == 'X' && board[0][2] == 'X') { + winner = "X"; + } else if(board[1][0] == 'X' && board[1][1] == 'X' && board[1][2] == 'X') { + winner = "X"; + } else if(board[2][0] == 'X' && board[2][1] == 'X' && board[2][2] == 'X') { + winner = "X"; + } + + // check horizontal + // check vertical + // diagonal + } + } + System.out.println(winner); + return winner; } } From 938f59f89000f55b4adc6e63a3f07c8fb1724a96 Mon Sep 17 00:00:00 2001 From: Manny Date: Sat, 3 Jul 2021 02:00:25 -0400 Subject: [PATCH 2/4] saving progress all WinRow Tests passed --- .../java/rocks/zipcodewilmington/tictactoe/Board.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index 3b5cff3..e3df46e 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -47,9 +47,12 @@ public Boolean isInFavorOfO() { } public Boolean isTie() { + boolean isTie = false; + if(!getWinner().equals("X") && !getWinner().equals("O")) { + isTie = true; + } - - return null; + return isTie; } public String getWinner() { @@ -82,7 +85,7 @@ public String getWinner() { // diagonal } } - System.out.println(winner); + //System.out.println(winner); return winner; } From 74425219b2e8f415eefd8264fe4a21dee8158710 Mon Sep 17 00:00:00 2001 From: Manny Date: Sat, 3 Jul 2021 13:44:50 -0400 Subject: [PATCH 3/4] isInFavorOfPlayerX failing, all other tests pass --- .../zipcodewilmington/tictactoe/Board.java | 41 +++++++++++++------ 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index e3df46e..a6f9bac 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -1,6 +1,6 @@ package rocks.zipcodewilmington.tictactoe; -import java.io.Console; + /** * @author leon on 6/22/18. @@ -26,7 +26,7 @@ public Boolean isInFavorOfX() { } } } - return trackerX > trackerO; + return trackerO < trackerX; } public Boolean isInFavorOfO() { @@ -51,7 +51,6 @@ public Boolean isTie() { if(!getWinner().equals("X") && !getWinner().equals("O")) { isTie = true; } - return isTie; } @@ -66,23 +65,39 @@ public String getWinner() { for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { - if(board[0][0] == 'O' && board[0][1] == 'O' && board[0][2] == 'O') { + if(board[0][0] == 'O' && board[0][1] == 'O' && board[0][2] == 'O') { // row0 O wins winner = "O"; - } else if(board[1][0] == 'O' && board[1][1] == 'O' && board[1][2] == 'O') { + } else if(board[1][0] == 'O' && board[1][1] == 'O' && board[1][2] == 'O') { // row1 O wins winner = "O"; - } else if(board[2][0] == 'O' && board[2][1] == 'O' && board[2][2] == 'O') { + } else if(board[2][0] == 'O' && board[2][1] == 'O' && board[2][2] == 'O') { // row2 O wins winner = "O"; - } if(board[0][0] == 'X' && board[0][1] == 'X' && board[0][2] == 'X') { + } if(board[0][0] == 'X' && board[0][1] == 'X' && board[0][2] == 'X') { // row0 X wins winner = "X"; - } else if(board[1][0] == 'X' && board[1][1] == 'X' && board[1][2] == 'X') { + } else if(board[1][0] == 'X' && board[1][1] == 'X' && board[1][2] == 'X') { // row1 X wins winner = "X"; - } else if(board[2][0] == 'X' && board[2][1] == 'X' && board[2][2] == 'X') { + } else if(board[2][0] == 'X' && board[2][1] == 'X' && board[2][2] == 'X') { // row2 X wins + winner = "X"; + } if(board[0][0] == 'O' && board[1][1] == 'O' && board[2][2] == 'O') { // left to right diagonal "O" + winner = "O"; + } else if(board[0][2] == 'O' && board[1][1] == 'O' && board[2][0] == 'O') { //right to left diagonal "O" + winner = "O"; + } if(board[0][0] == 'X' && board[1][1] == 'X' && board[2][2] == 'X') { // left to right diagonal "X" + winner = "X"; + } else if(board[0][2] == 'X' && board[1][1] == 'X' && board[2][0] == 'X') { //right to left diagonal "X" + winner = "X"; + } if(board[0][0] == 'O' && board[1][0] == 'O' && board[2][0] == 'O') { // column0 O wins + winner = "O"; + } else if(board[0][1] == 'O' && board[1][1] == 'O' && board[2][1] == 'O') { // column1 O wins + winner = "O"; + } else if(board[0][2] == 'O' && board[1][2] == 'O' && board[2][2] == 'O') { // column2 O wins + winner = "O"; + } if(board[0][0] == 'X' && board[1][0] == 'X' && board[2][0] == 'X') { // column0 x wins + winner = "X"; + } else if(board[0][1] == 'X' && board[1][1] == 'X' && board[2][1] == 'X') { // column1 X wins + winner = "X"; + } else if(board[0][2] == 'X' && board[1][2] == 'X' && board[2][2] == 'X') { // column2 X wins winner = "X"; } - - // check horizontal - // check vertical - // diagonal } } //System.out.println(winner); From 51281cb28e56eb7347020f2d5619ae0c698a4c59 Mon Sep 17 00:00:00 2001 From: Manny Date: Sat, 3 Jul 2021 15:44:10 -0400 Subject: [PATCH 4/4] Manny finished TicTacToe --- .../java/rocks/zipcodewilmington/tictactoe/Board.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index a6f9bac..0ee32ca 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -13,10 +13,13 @@ public Board(Character[][] matrix) { } public Boolean isInFavorOfX() { + int trackerO = 0; int trackerX = 0; Character[][] board = this.matrix; - + if(isTie()){ + return false; + } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (board[i][j] == 'O') { @@ -33,7 +36,9 @@ public Boolean isInFavorOfO() { int trackerO = 0; int trackerX = 0; Character[][] board = this.matrix; - + if(isTie()){ + return false; + } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (board[i][j] == 'O') {