Skip to content

Commit f4720f7

Browse files
authored
make darts use methods taking arguments (exercism#2180)
1 parent fd5d5b5 commit f4720f7

4 files changed

Lines changed: 24 additions & 49 deletions

File tree

exercises/practice/darts/.meta/config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"muzimuzhi",
1212
"SleeplessByte",
1313
"Smarticles101",
14-
"sshine"
14+
"sshine",
15+
"jennylia"
1516
],
1617
"files": {
1718
"solution": [

exercises/practice/darts/.meta/src/reference/java/Darts.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,20 @@ class Darts {
44
private static final int RADIUS_CIRCLE_MIDDLE = 5;
55
private static final int RADIUS_CIRCLE_INNER = 1;
66

7-
private double x;
8-
private double y;
9-
10-
Darts(double x, double y) {
11-
this.x = x;
12-
this.y = y;
13-
}
14-
15-
int score() {
16-
if (RADIUS_CIRCLE_MIDDLE < distanceDartToOrigin()
17-
&& distanceDartToOrigin() <= RADIUS_CIRCLE_OUTER) {
7+
int score(double x, double y) {
8+
if (RADIUS_CIRCLE_MIDDLE < distanceDartToOrigin(x, y)
9+
&& distanceDartToOrigin(x, y) <= RADIUS_CIRCLE_OUTER) {
1810
return 1;
19-
} else if (RADIUS_CIRCLE_INNER < distanceDartToOrigin()
20-
&& distanceDartToOrigin() <= RADIUS_CIRCLE_MIDDLE) {
11+
} else if (RADIUS_CIRCLE_INNER < distanceDartToOrigin(x, y)
12+
&& distanceDartToOrigin(x, y) <= RADIUS_CIRCLE_MIDDLE) {
2113
return 5;
22-
} else if (distanceDartToOrigin() <= RADIUS_CIRCLE_INNER) {
14+
} else if (distanceDartToOrigin(x, y) <= RADIUS_CIRCLE_INNER) {
2315
return 10;
2416
}
2517
return 0;
2618
}
2719

28-
private double distanceDartToOrigin() {
20+
private double distanceDartToOrigin(double x, double y) {
2921
return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
3022
}
3123

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
class Darts {
2-
3-
Darts(double x, double y) {
2+
int score(int xOfDart, int yOfDart) {
43
throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
54
}
6-
7-
int score() {
8-
throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
9-
}
10-
115
}

exercises/practice/darts/src/test/java/DartsTest.java

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,95 +5,83 @@
55

66
public class DartsTest {
77

8+
Darts darts = new Darts();
89
@Test
910
public void missedTarget() {
10-
Darts darts = new Darts(-9, 9);
11-
assertEquals(0, darts.score());
11+
assertEquals(0, darts.score(-9, 9));
1212
}
1313

1414
@Ignore("Remove to run test")
1515
@Test
1616
public void onTheOuterCircle() {
17-
Darts darts = new Darts(0, 10);
18-
assertEquals(1, darts.score());
17+
assertEquals(1, darts.score(0, 10));
1918
}
2019

2120
@Ignore("Remove to run test")
2221
@Test
2322
public void onTheMiddleCircle() {
24-
Darts darts = new Darts(-5, 0);
25-
assertEquals(5, darts.score());
23+
assertEquals(5, darts.score(-5, 0));
2624
}
2725

2826
@Ignore("Remove to run test")
2927
@Test
3028
public void onTheInnerCircle() {
31-
Darts darts = new Darts(0, -1);
32-
assertEquals(10, darts.score());
29+
assertEquals(10, darts.score(0, -1));
3330
}
3431

3532
@Ignore("Remove to run test")
3633
@Test
3734
public void exactlyOnCentre() {
38-
Darts darts = new Darts(0, 0);
39-
assertEquals(10, darts.score());
35+
assertEquals(10, darts.score(0, 0));
4036
}
4137

4238
@Ignore("Remove to run test")
4339
@Test
4440
public void nearTheCentre() {
45-
Darts darts = new Darts(-0.1, -0.1);
46-
assertEquals(10, darts.score());
41+
assertEquals(10, darts.score(-0.1, -0.1));
4742
}
4843

4944
@Ignore("Remove to run test")
5045
@Test
5146
public void justWithinTheInnerCircle() {
52-
Darts darts = new Darts(0.7, 0.7);
53-
assertEquals(10, darts.score());
47+
assertEquals(10, darts.score(0.7, 0.7));
5448
}
5549

5650
@Ignore("Remove to run test")
5751
@Test
5852
public void justOutsideTheInnerCircle() {
59-
Darts darts = new Darts(0.8, -0.8);
60-
assertEquals(5, darts.score());
53+
assertEquals(5, darts.score(0.8, -0.8));
6154
}
6255

6356
@Ignore("Remove to run test")
6457
@Test
6558
public void justWithinTheMiddleCircle() {
66-
Darts darts = new Darts(-3.5, 3.5);
67-
assertEquals(5, darts.score());
59+
assertEquals(5, darts.score(-3.5, 3.5));
6860
}
6961

7062
@Ignore("Remove to run test")
7163
@Test
7264
public void justOutsideTheMiddleCircle() {
73-
Darts darts = new Darts(-3.6, -3.6);
74-
assertEquals(1, darts.score());
65+
assertEquals(1, darts.score(-3.6, -3.6));
7566
}
7667

7768

7869
@Ignore("Remove to run test")
7970
@Test
8071
public void justWithinTheOuterCircle() {
81-
Darts darts = new Darts(-7.0, 7.0);
82-
assertEquals(1, darts.score());
72+
assertEquals(1, darts.score(-7.0, 7.0));
8373
}
8474

8575
@Ignore("Remove to run test")
8676
@Test
8777
public void justOutsideTheOuterCircle() {
88-
Darts darts = new Darts(7.1, -7.1);
89-
assertEquals(0, darts.score());
78+
assertEquals(0, darts.score(7.1, -7.1));
9079
}
9180

9281
@Ignore("Remove to run test")
9382
@Test
9483
public void asymmetricPositionBetweenTheInnerAndMiddleCircles() {
95-
Darts darts = new Darts(0.5, -4);
96-
assertEquals(5, darts.score());
84+
assertEquals(5, darts.score(0.5, -4));
9785
}
9886

9987
}

0 commit comments

Comments
 (0)