Skip to content
Snippets Groups Projects
Commit 61900cd5 authored by Daniel Ho's avatar Daniel Ho
Browse files

Fix assignment errors

Fix #1.
Fix correct detection of complete and incomplete boxes on grid.
Fix throwing of IllegalStateException when attempting to draw
horizontal or vertical lines over lines that were previously drawn.
parent e72875bd
No related tags found
No related merge requests found
Pipeline #1848 failed
...@@ -111,8 +111,7 @@ public class DotsAndBoxesGrid { ...@@ -111,8 +111,7 @@ public class DotsAndBoxesGrid {
} }
// A box is complete if the north and south horizontals and the east and west verticals have all been drawn. // 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 (getHorizontal(x, y) && getHorizontal(x , y + 1) && getVertical(x, y) && getVertical(x+1, y));
return true;
} }
/** Tries to claim a box for a player. If the box is complete, sets the ownership and returns true. */ /** Tries to claim a box for a player. If the box is complete, sets the ownership and returns true. */
...@@ -139,7 +138,10 @@ public class DotsAndBoxesGrid { ...@@ -139,7 +138,10 @@ public class DotsAndBoxesGrid {
throw new IndexOutOfBoundsException(String.format("y was %d, which is out of range. Range is 0 to %d", y, height)); throw new IndexOutOfBoundsException(String.format("y was %d, which is out of range. Range is 0 to %d", y, height));
} }
// FIXME: You need to throw an exception if the line was already drawn. // throw exception if attempting to draw over a line that was previously drawn
if (getHorizontal(x, y)) {
throw new IllegalStateException("horizontal line already drawn");
}
this.horizontals[x][y] = true; this.horizontals[x][y] = true;
...@@ -170,7 +172,10 @@ public class DotsAndBoxesGrid { ...@@ -170,7 +172,10 @@ public class DotsAndBoxesGrid {
throw new IndexOutOfBoundsException(String.format("y was %d, which is out of range. Range is 0 to %d", y, height - 1)); throw new IndexOutOfBoundsException(String.format("y was %d, which is out of range. Range is 0 to %d", y, height - 1));
} }
// You need to throw an exception if the line was already drawn. // throw exception if attempting to draw over a line that was previously drawn
if (getVertical(x, y)) {
throw new IllegalStateException("vertical line already drawn");
}
this.verticals[x][y] = true; this.verticals[x][y] = true;
// Try to claim the north or south boxes // Try to claim the north or south boxes
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment