From 39cb622e3c0f2824c841c87e7954acefa483823b Mon Sep 17 00:00:00 2001
From: Matthew Trippe <Mtrippe@myune.edu.au>
Date: Wed, 21 Jul 2021 23:50:03 +1000
Subject: [PATCH] Test pass now, Fixed main code

---
 .../java/dotsandboxes/DotsAndBoxesGrid.java    | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/main/java/dotsandboxes/DotsAndBoxesGrid.java b/src/main/java/dotsandboxes/DotsAndBoxesGrid.java
index 32667af..2d3d42b 100644
--- a/src/main/java/dotsandboxes/DotsAndBoxesGrid.java
+++ b/src/main/java/dotsandboxes/DotsAndBoxesGrid.java
@@ -107,13 +107,17 @@ public class DotsAndBoxesGrid {
      * @return true if all four sides have been drawn.
      */
     public boolean boxComplete(int x, int y) {
+
+        // A box is complete if the north and south horizontals and the east and west verticals have all been drawn.
         if (x >= width - 1 || x < 0 || y >= height - 1 || y < 0) {
             return false;
         }
-
-        // 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;
+        else if (this.getVertical(x,y) && this.getHorizontal(x,y) && this.getVertical(x+1,y) && this.getHorizontal(x,y+1)){
+            return true;
+        }
+        else {
+            return false;
+        }
     }
 
     /** Tries to claim a box for a player. If the box is complete, sets the ownership and returns true. */
@@ -139,6 +143,9 @@ public class DotsAndBoxesGrid {
         if (y >= height || y < 0) {
             throw new IndexOutOfBoundsException(String.format("y was %d, which is out of range. Range is 0 to %d", y, height));
         }
+        if (this.horizontals[x][y]) {
+            throw new IllegalStateException("A horizontal line already exists");
+        }
 
         // FIXME: You need to throw an exception if the line was already drawn.
 
@@ -170,6 +177,9 @@ public class DotsAndBoxesGrid {
         if (y >= height - 1 || y < 0) {
             throw new IndexOutOfBoundsException(String.format("y was %d, which is out of range. Range is 0 to %d", y, height - 1));
         }
+        if (this.verticals[x][y]){
+            throw new IllegalStateException("A Vertical line already exists");
+        }
 
         // You need to throw an exception if the line was already drawn.
 
-- 
GitLab