diff --git a/exercises/darts/canonical-data.json b/exercises/darts/canonical-data.json new file mode 100644 index 0000000000..0ee8e55568 --- /dev/null +++ b/exercises/darts/canonical-data.json @@ -0,0 +1,65 @@ +{ + "exercise": "darts", + "version": "1.0.0", + "cases": [ + { + "description": "Return the correct amount earned by a dart landing in a given point in the target problem.", + "cases": [ + { + "property": "result", + "description": "A dart lands outside the target", + "input": { + "x": 15.3, + "y": 13.2 + }, + "expected": 0 + }, + { + "property": "result", + "description": "A dart lands just in the border of the target", + "input": { + "x": 10, + "y": 0 + }, + "expected": 1 + }, + { + "property": "result", + "description": "Input is not a number", + "input": { + "x": "WRONG", + "y": 10 + }, + "expected": null + }, + { + "property": "result", + "description": "A dart lands in the middle circle", + "input": { + "x": 3, + "y": 3.7 + }, + "expected": 5 + }, + { + "property": "result", + "description": "A dart lands right in the border between outside and middle circles", + "input": { + "x": 0, + "y": 5 + }, + "expected": 5 + }, + { + "property": "result", + "description": "A dart arrives in the inner circle", + "input": { + "x": 0, + "y": 0 + }, + "expected": 10 + } + ] + } + ] +} diff --git a/exercises/darts/description.md b/exercises/darts/description.md new file mode 100644 index 0000000000..d5a28a9c5b --- /dev/null +++ b/exercises/darts/description.md @@ -0,0 +1,15 @@ +Write a function that returns the earned points in a Darts game. + +[Darts](https://en.wikipedia.org/wiki/Darts) is a game where players +throw darts to a [target](https://en.wikipedia.org/wiki/Darts#/media/File:Darts_in_a_dartboard.jpg). + +In our particular instance of the game, the target rewards with 4 different amounts of points, depending on where the dart lands: + +* If the dart lands outside the target, player earns no points (0 points). +* If the dart lands in the outer circle of the target, player earns 1 point. +* If the dart lands in the middle circle of the target, player earns 5 points. +* If the dart lands in the inner circle of the target, player earns 10 points. + +The outer circle has a radius of 10 units (This is equivalent to the total radius for the entire target), the middle circle a radius of 5 units, and the inner circle a radius of 1. Of course, they are all centered to the same point (That is, the circles are [concentrics](http://mathworld.wolfram.com/ConcentricCircles.html)). + +Write a function that given a point in the target (defined by its `real` cartesian coordinates `x` and `y`), returns the correct amount earned by a dart landing in that point. \ No newline at end of file diff --git a/exercises/darts/metadata.yml b/exercises/darts/metadata.yml new file mode 100644 index 0000000000..f87c780a32 --- /dev/null +++ b/exercises/darts/metadata.yml @@ -0,0 +1,3 @@ +--- +blurb: "Write a function that returns the earned points in a Darts game" +source: "Inspired by an excersie created by a professor Della Paolera in Argentina"