Skip to content
Snippets Groups Projects
Commit da330583 authored by Daniel Andrews's avatar Daniel Andrews
Browse files

bugfix

parent 7bdbd0fb
No related branches found
No related tags found
No related merge requests found
......@@ -113,7 +113,11 @@ 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).
if(getHorizontal(x,y) && getVertical(x,y) && getHorizontal(x,y+1) && getVertical(x+1,y)) {
return true;
} else {
return false;
}
}
/** Tries to claim a box for a player. If the box is complete, sets the ownership and returns true. */
......@@ -132,7 +136,7 @@ public class DotsAndBoxesGrid {
* @param y
* @return true if it completes a box
*/
public boolean drawHorizontal(int x, int y, int player) {
public boolean drawHorizontal(int x, int y, int player) throws IllegalStateException {
if (x >= width - 1 || x < 0) {
throw new IndexOutOfBoundsException(String.format("x was %d, which is out of range. Range is 0 to %d", x, width - 1));
}
......@@ -141,8 +145,13 @@ public class DotsAndBoxesGrid {
}
// FIXME: You need to throw an exception if the line was already drawn.
if (this.getHorizontal(x,y)) {
throw new IllegalStateException(
String.format("This line has already been drawn."));
} else {
this.horizontals[x][y] = true;
}
// Try to claim the north or south boxes
boolean claimN = claimBox(x, y-1, player);
......@@ -163,7 +172,7 @@ public class DotsAndBoxesGrid {
* @param y
* @return true if it completes a box
*/
public boolean drawVertical(int x, int y, int player) {
public boolean drawVertical(int x, int y, int player) throws IllegalStateException {
if (x >= width || x < 0) {
throw new IndexOutOfBoundsException(String.format("x was %d, which is out of range. Range is 0 to %d", x, width));
}
......@@ -172,8 +181,13 @@ public class DotsAndBoxesGrid {
}
// You need to throw an exception if the line was already drawn.
if (this.getVertical(x,y)) {
throw new IllegalStateException(
String.format("This line has already been drawn."));
} else {
this.verticals[x][y] = true;
}
// Try to claim the north or south boxes
boolean claimE = claimBox(x, y, player);
boolean claimW = claimBox(x-1, y, player);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment