Skip to content
Snippets Groups Projects
Commit 7cbda112 authored by abryce2's avatar abryce2
Browse files

Bug Fixes

parent fb19c627
Branches main
No related tags found
No related merge requests found
...@@ -107,13 +107,14 @@ public class DotsAndBoxesGrid { ...@@ -107,13 +107,14 @@ public class DotsAndBoxesGrid {
* @return true if all four sides have been drawn. * @return true if all four sides have been drawn.
*/ */
public boolean boxComplete(int x, int y) { public boolean boxComplete(int x, int y) {
if (x >= width - 1 || x < 0 || y >= height - 1 || y < 0) { if (horizontals[x][y] && verticals[x][y] && horizontals[x+1][y] && verticals[x][y+1]) {
return false;
//if (x >= width - 1 || x < 0 || y >= height - 1 || y < 0) {
return true;
} }
// 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 false;
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,8 +140,9 @@ public class DotsAndBoxesGrid { ...@@ -139,8 +140,9 @@ public class DotsAndBoxesGrid {
if (y >= height || y < 0) { 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)); throw new IndexOutOfBoundsException(String.format("y was %d, which is out of range. Range is 0 to %d", y, height));
} }
if (horizontals[x][y]){
// FIXME: You need to throw an exception if the line was already drawn. throw new IllegalStateException(String.format("You cannot draw a line here. There is already a line."));
}
this.horizontals[x][y] = true; this.horizontals[x][y] = true;
...@@ -171,6 +173,9 @@ public class DotsAndBoxesGrid { ...@@ -171,6 +173,9 @@ 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));
} }
if (verticals[x][y]){
throw new IllegalStateException(String.format("You cannot draw a line here. There is already a line."));
}
// You need to throw an exception if the line was already drawn. // You need to throw an exception if the line was already drawn.
this.verticals[x][y] = true; this.verticals[x][y] = true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment