Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
assessment2
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
hmccrist
assessment2
Compare revisions
65856686316716bed0576e8a4bf46d0b4f7b5b74 to 9cef2445bb7f87d4dce0fddda647049d3b77d9b4
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
hmccrist/assessment2
Select target project
No results found
9cef2445bb7f87d4dce0fddda647049d3b77d9b4
Select Git revision
Branches
1-fix-assignment-errors
2-test-issue
main
testbranch3
Tags
testsfail
5 results
Swap
Target
hmccrist/assessment2
Select target project
hmccrist/assessment2
1 result
65856686316716bed0576e8a4bf46d0b4f7b5b74
Select Git revision
Branches
1-fix-assignment-errors
2-test-issue
main
testbranch3
Tags
testsfail
5 results
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (2)
Added unit tests
· 9231f72f
hmccrist
authored
1 year ago
9231f72f
Fixed bugs
· 9cef2445
hmccrist
authored
1 year ago
9cef2445
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/main/java/dotsandboxes/DotsAndBoxesGrid.java
+13
-1
13 additions, 1 deletion
src/main/java/dotsandboxes/DotsAndBoxesGrid.java
src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
+27
-0
27 additions, 0 deletions
src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
with
40 additions
and
1 deletion
src/main/java/dotsandboxes/DotsAndBoxesGrid.java
View file @
9cef2445
...
...
@@ -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
);
...
...
This diff is collapsed.
Click to expand it.
src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
View file @
9cef2445
...
...
@@ -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
));
}
}
This diff is collapsed.
Click to expand it.