diff --git a/src/main/java/dotsandboxes/DotsAndBoxesGrid.java b/src/main/java/dotsandboxes/DotsAndBoxesGrid.java index 4f774b198f230ca82e5cc94d51967846aa05d5f5..a91ee3d72d02a04bf6a63b71856d39aac1d989d2 100644 --- a/src/main/java/dotsandboxes/DotsAndBoxesGrid.java +++ b/src/main/java/dotsandboxes/DotsAndBoxesGrid.java @@ -113,7 +113,16 @@ public class DotsAndBoxesGrid { // A box is complete if the north and south horizontals and the east and west verticals have all been drawn. // FIXME: You'll need to fix this code (after writing a test first). - return true; + + // set boolean + boolean isTheBoxComplete = false; + + // Check if all four lines that complete the box are drawn + if(verticals[x][y] == true && horizontals[x][y] == true && + verticals[x+1][y] == true && horizontals[x][y+1] == true){ + isTheBoxComplete = true; + } + return isTheBoxComplete; } /** Tries to claim a box for a player. If the box is complete, sets the ownership and returns true. */ @@ -142,6 +151,13 @@ public class DotsAndBoxesGrid { // FIXME: You need to throw an exception if the line was already drawn. + // Throws an 'illegalStateException' when an attempt is made to draw a + // horizontal line that's already been drawn. + if (horizontals[x][y]){ + throw new IllegalStateException( + String.format("A horizontal line is already drawn at x: %d & y: %d", x,y)); + } + this.horizontals[x][y] = true; // Try to claim the north or south boxes @@ -173,6 +189,13 @@ public class DotsAndBoxesGrid { // You need to throw an exception if the line was already drawn. + // Throws an 'illegalStateException' when an attempt is made to draw a + // vertical line that's already been drawn. + if (verticals[x][y]){ + throw new IllegalStateException( + String.format("A vertical line is already drawn at x: %d & y: %d", x,y)); + } + this.verticals[x][y] = true; // Try to claim the north or south boxes boolean claimE = claimBox(x, y, player);