Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 1-fix-assignment-errors
  • 2-test-issue
  • main
  • testbranch3
  • testsfail
5 results

Target

Select target project
  • hmccrist/assessment2
1 result
Select Git revision
  • 1-fix-assignment-errors
  • 2-test-issue
  • main
  • testbranch3
  • testsfail
5 results
Show changes
Commits on Source (2)
......@@ -112,7 +112,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 (horizontals[x][y] && horizontals[x][y+1] && verticals[x][y] && verticals[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. */
......@@ -141,6 +145,10 @@ public class DotsAndBoxesGrid {
// FIXME: You need to throw an exception if the line was already drawn.
if (horizontals[x][y]) {
throw new IllegalArgumentException("Horizontal line already drawn");
}
this.horizontals[x][y] = true;
// Try to claim the north or south boxes
......@@ -172,6 +180,10 @@ public class DotsAndBoxesGrid {
// You need to throw an exception if the line was already drawn.
if (verticals[x][y]) {
throw new IllegalArgumentException("Vertical line already drawn");
}
this.verticals[x][y] = true;
// Try to claim the north or south boxes
boolean claimE = claimBox(x, y, player);
......
......@@ -28,4 +28,31 @@ public class DotsAndBoxesGridTest {
}
// FIXME: You need to write tests for the two known bugs in the code.
@Test
public void boxCompleteDetectsCompletedBoxes() {
DotsAndBoxesGrid case1 = new DotsAndBoxesGrid(5, 5, 2);
case1.drawHorizontal(0, 0, 0);
case1.drawVertical(0, 0, 1);
case1.drawHorizontal(0, 1, 0);
case1.drawVertical(1, 0, 1);
assertTrue(case1.boxComplete(0, 0));
}
@Test
public void boxCompleteDetectsIncompleteBoxes() {
DotsAndBoxesGrid case2 = new DotsAndBoxesGrid(5, 5, 2);
case2.drawHorizontal(0, 0, 0);
case2.drawVertical(0, 0, 1);
assertFalse(case2.boxComplete(0, 0));
}
@Test
public void checkDrawLineException() {
DotsAndBoxesGrid case3 = new DotsAndBoxesGrid(5, 5, 2);
case3.drawHorizontal(0, 0, 0);
case3.drawVertical(0, 0, 1);
assertThrows(IllegalArgumentException.class, () -> case3.drawHorizontal(0, 0, 0));
assertThrows(IllegalArgumentException.class, () -> case3.drawVertical(0, 0, 1));
}
}