Skip to content
Snippets Groups Projects
Commit 378c7bf3 authored by Juan Ludevid's avatar Juan Ludevid
Browse files

bugs have been fixed

parent c23f7667
No related branches found
No related tags found
1 merge request!1Issue has been fixed through commit 378c7bf3
......@@ -112,7 +112,8 @@ 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;
return (this.horizontals[x][y] && this.horizontals[x][y+1] && this.verticals[x][y] && this.verticals[x+1][y]);
}
/** Tries to claim a box for a player. If the box is complete, sets the ownership and returns true. */
......@@ -140,7 +141,9 @@ public class DotsAndBoxesGrid {
}
// FIXME: You need to throw an exception if the line was already drawn.
if (this.horizontals[x][y]) {
throw new IllegalStateException(String.format("horizontal line at [%d][%d] has been drawn already", x, y));
}
this.horizontals[x][y] = true;
// Try to claim the north or south boxes
......@@ -171,7 +174,9 @@ public class DotsAndBoxesGrid {
}
// You need to throw an exception if the line was already drawn.
if (this.verticals[x][y]) {
throw new IllegalStateException(String.format("Vertical line at [%d][%d] has been drawn already", x, y));
}
this.verticals[x][y] = true;
// Try to claim the north or south boxes
boolean claimE = claimBox(x, y, player);
......
......@@ -45,19 +45,18 @@ public class DotsAndBoxesGridTest {
case2.drawHorizontal(0, 0, 0);
case2.drawVertical(0, 0, 1);
case2.drawHorizontal(0, 1, 0);
case2.drawVertical(0, 0, 1);
assertFalse(case2.boxComplete(0, 0));
}
@Test
public void drawMethodsDetectRedrawnLines() {
// code to test that drawHorizontal throws an exception if the line was already drawn goes here
DotsAndBoxesGrid case3 = new DotsAndBoxesGrid(5, 5, 2);
case3.drawHorizontal(0, 0, 1);
case3.drawVertical(0, 0, 1);
assertAll(
()->assertThrows(IllegalStateException.class, ()-> case3.drawHorizontal(0, 0, 1), "No horizonal line has been drawn"),
()->assertThrows(IllegalStateException.class, ()-> case3.drawVertical(0, 0, 1), "No vertical line has been drawn")
);
case3.drawHorizontal(0, 0, 1);
assertAll(
()->assertThrows(IllegalStateException.class, ()-> case3.drawVertical(0, 0, 1), "No vertical line has been drawn"),
()->assertThrows(IllegalStateException.class, ()-> case3.drawHorizontal(0, 0, 1), "No horizonal line has been drawn")
);
}
......
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