From 029fa7c942ace317413bc4230a85d7fb359d94ac Mon Sep 17 00:00:00 2001 From: junior Date: Thu, 4 Nov 2021 21:49:58 -0400 Subject: [PATCH 1/4] working on it --- pom.xml | 12 +++ .../zipcodewilmington/tictactoe/Board.java | 78 ++++++++++++++++++- 2 files changed, 87 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 3b8d043..e20c12a 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 + + 17 + 17 + + + + junit diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index f56452f..98bb537 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; // created instance variable + + public Board(Character[][] matrix) { // constructor + this.matrix = matrix; // initialized instance variable + } + + public static void main(String[] args) { + + Character[][] board = { + {'X', 'X', 'O'}, + {'O', 'O', 'X'}, + {'O', 'O', 'X'} + }; + /* example + { col + row{'X', 'O', 'X'}, + {'O', 'O', 'X'}, + {'X', 'X', 'O'} + } + */ + + Boolean isInFavorOfX = null; + Integer playerX = 0; + Integer playerO = 0; + + for (int row = 0; row < board.length; row++) { + for (int col = 0; col < board[row].length; col++) { + if (board[row][col] == 'X') { + playerX++; + + } else { + playerO++; + } + } + } + + System.out.println("O :"+playerO); + System.out.println("X :"+playerX); + } +// work in progress + public Boolean isInFavorOfX() { - return null; + Character[][] board = this.matrix; + /* example + { col + row{'X', 'O', 'X'}, + {'O', 'O', 'X'}, + {'X', 'X', 'O'} + } + */ + + Boolean isInFavorOfX = false; + Integer playerX = 0; //Keeps track of player X turns + Integer playerO = 0; //Keeps track of player O turns + + for (int row = 0; row < board.length; row++) { + for (int col = 0; col < board[row].length; col++) { + if (board[row][col] == 'X') { + playerX++; + + } else { + playerO++; + } + } + } + + + return isInFavorOfX; } + public Boolean isInFavorOfO() { + return null; } public Boolean isTie() { + + return null; } public String getWinner() { - return null; + + return "X"; } } From 407850dd425d86ce3543ce182fb56ddc846349e5 Mon Sep 17 00:00:00 2001 From: junior Date: Thu, 4 Nov 2021 23:22:23 -0400 Subject: [PATCH 2/4] almost completed lab --- .../zipcodewilmington/tictactoe/Board.java | 113 +++++++++++------- 1 file changed, 68 insertions(+), 45 deletions(-) diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index 98bb537..f540a4b 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -1,5 +1,7 @@ package rocks.zipcodewilmington.tictactoe; +import java.io.StringReader; + /** * @author leon on 6/22/18. */ @@ -12,65 +14,53 @@ public Board(Character[][] matrix) { // constructor this.matrix = matrix; // initialized instance variable } - public static void main(String[] args) { - Character[][] board = { - {'X', 'X', 'O'}, - {'O', 'O', 'X'}, - {'O', 'O', 'X'} - }; +// work in progress MADE SOME PROGRESS + + public Boolean isInFavorOfX() { + /* example { col row{'X', 'O', 'X'}, {'O', 'O', 'X'}, {'X', 'X', 'O'} - } - */ - Boolean isInFavorOfX = null; - Integer playerX = 0; - Integer playerO = 0; - for (int row = 0; row < board.length; row++) { - for (int col = 0; col < board[row].length; col++) { - if (board[row][col] == 'X') { - playerX++; - } else { - playerO++; - } - } + Ways to win + row1 [0][0],[0][1],[0][2] + row2 [1][0],[1][1],[1][2] + row3 [2][0],[2][1],[2][2] + -------------------------- + col1 [0][0],[1][0],[2][0] + col1 [0][1],[1][1],[2][1] + col1 [0][2],[1][2],[2][2] + ---------------------------- + diag1[0][0],[1][1],[2][2] + diag2[0][2],[1][1],[2][0] } + */ - System.out.println("O :"+playerO); - System.out.println("X :"+playerX); + Boolean isInFavorOfX = false; - } -// work in progress + for (int row = 0; row < matrix.length; row++) { + for (int col = 0; col < matrix[row].length; col++) { - public Boolean isInFavorOfX() { - Character[][] board = this.matrix; - /* example - { col - row{'X', 'O', 'X'}, - {'O', 'O', 'X'}, - {'X', 'X', 'O'} - } - */ + if(matrix[row][0] == 'X' && matrix[row][1] == 'X' && matrix[row][2] == 'X'){//horizontal win + isInFavorOfX = true; - Boolean isInFavorOfX = false; - Integer playerX = 0; //Keeps track of player X turns - Integer playerO = 0; //Keeps track of player O turns + }else if(matrix[0][col] == 'X' && matrix[1][col] == 'X' && matrix[2][col] == 'X'){//vertical win + isInFavorOfX =true; - for (int row = 0; row < board.length; row++) { - for (int col = 0; col < board[row].length; col++) { - if (board[row][col] == 'X') { - playerX++; + }else if(matrix[row][0] == 'X' && matrix[row][1] == 'X' && matrix[row][2] == 'X'){//diagonal win + isInFavorOfX = true; + + }else if(matrix[row][2] == 'X' && matrix[row][1] == 'X' && matrix[row][0] == 'X'){ + isInFavorOfX =true; + + } - } else { - playerO++; - } } } @@ -81,18 +71,51 @@ public Boolean isInFavorOfX() { public Boolean isInFavorOfO() { - return null; + Boolean isInFavorOfO = false; + + + for (int row = 0; row < matrix.length; row++) { + for (int col = 0; col < matrix[row].length; col++) { + + if(matrix[row][0] == 'O' && matrix[row][1] == 'O' && matrix[row][2] == 'O'){ + isInFavorOfO = true; + + }else if(matrix[0][col] == 'O' && matrix[1][col] == 'O' && matrix[2][col] == 'O'){ + isInFavorOfO =true; + + }else if(matrix[row][0] == 'O' && matrix[row][1] == 'O' && matrix[row][2] == 'O'){ + isInFavorOfO = true; + + }else if(matrix[row][2] == 'O' && matrix[row][1] == 'O' && matrix[row][0] == 'O'){ + isInFavorOfO =true; + + } + + } + } + + + return isInFavorOfO; } public Boolean isTie() { - return null; + return (isInFavorOfO() || isInFavorOfX()); } public String getWinner() { + String winner = ""; + if(isInFavorOfX()){ + winner = "X"; + + }else if(isInFavorOfO()){ + winner = "O"; + + } + - return "X"; + return winner; } } From ed5935a4b769b615c5e636b32825dd75d9405490 Mon Sep 17 00:00:00 2001 From: junior Date: Thu, 4 Nov 2021 23:37:05 -0400 Subject: [PATCH 3/4] need 6 more test to pass --- .../java/rocks/zipcodewilmington/tictactoe/Board.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index f540a4b..830441a 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -56,7 +56,7 @@ public Boolean isInFavorOfX() { }else if(matrix[row][0] == 'X' && matrix[row][1] == 'X' && matrix[row][2] == 'X'){//diagonal win isInFavorOfX = true; - }else if(matrix[row][2] == 'X' && matrix[row][1] == 'X' && matrix[row][0] == 'X'){ + }else if(matrix[row][2] == 'X' && matrix[row][1] == 'X' && matrix[row][0] == 'X'){//diagonal win isInFavorOfX =true; } @@ -64,7 +64,6 @@ public Boolean isInFavorOfX() { } } - return isInFavorOfX; } @@ -101,12 +100,13 @@ public Boolean isInFavorOfO() { public Boolean isTie() { - return (isInFavorOfO() || isInFavorOfX()); + return !(isInFavorOfO() || isInFavorOfX()); } public String getWinner() { String winner = ""; - if(isInFavorOfX()){ + + if(isInFavorOfX()){ winner = "X"; }else if(isInFavorOfO()){ From a692a777a098c294f50731282de5f67ab4a3b410 Mon Sep 17 00:00:00 2001 From: junior Date: Thu, 4 Nov 2021 23:50:04 -0400 Subject: [PATCH 4/4] completed lab at 11:49 PM --- .../rocks/zipcodewilmington/tictactoe/Board.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java index 830441a..3282c62 100644 --- a/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java +++ b/src/main/java/rocks/zipcodewilmington/tictactoe/Board.java @@ -27,7 +27,7 @@ public Boolean isInFavorOfX() { - Ways to win + 8 Ways to win row1 [0][0],[0][1],[0][2] row2 [1][0],[1][1],[1][2] row3 [2][0],[2][1],[2][2] @@ -53,10 +53,10 @@ public Boolean isInFavorOfX() { }else if(matrix[0][col] == 'X' && matrix[1][col] == 'X' && matrix[2][col] == 'X'){//vertical win isInFavorOfX =true; - }else if(matrix[row][0] == 'X' && matrix[row][1] == 'X' && matrix[row][2] == 'X'){//diagonal win + }else if(matrix[0][0] == 'X' && matrix[1][1] == 'X' && matrix[2][2] == 'X'){//diagonal 1 win isInFavorOfX = true; - }else if(matrix[row][2] == 'X' && matrix[row][1] == 'X' && matrix[row][0] == 'X'){//diagonal win + }else if(matrix[0][2] == 'X' && matrix[1][1] == 'X' && matrix[2][0] == 'X'){//diagonal 2 win isInFavorOfX =true; } @@ -76,16 +76,16 @@ public Boolean isInFavorOfO() { for (int row = 0; row < matrix.length; row++) { for (int col = 0; col < matrix[row].length; col++) { - if(matrix[row][0] == 'O' && matrix[row][1] == 'O' && matrix[row][2] == 'O'){ + if(matrix[row][0] == 'O' && matrix[row][1] == 'O' && matrix[row][2] == 'O'){ //horizontal wins isInFavorOfO = true; - }else if(matrix[0][col] == 'O' && matrix[1][col] == 'O' && matrix[2][col] == 'O'){ + }else if(matrix[0][col] == 'O' && matrix[1][col] == 'O' && matrix[2][col] == 'O'){//vertical wins isInFavorOfO =true; - }else if(matrix[row][0] == 'O' && matrix[row][1] == 'O' && matrix[row][2] == 'O'){ + }else if(matrix[0][0] == 'O' && matrix[1][1] == 'O' && matrix[2][2] == 'O'){ //diagonal 1 win isInFavorOfO = true; - }else if(matrix[row][2] == 'O' && matrix[row][1] == 'O' && matrix[row][0] == 'O'){ + }else if(matrix[0][2] == 'O' && matrix[1][1] == 'O' && matrix[2][0] == 'O'){//diagonal 2 win isInFavorOfO =true; } @@ -94,6 +94,8 @@ public Boolean isInFavorOfO() { } + + return isInFavorOfO; }