-
-
Notifications
You must be signed in to change notification settings - Fork 546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
darts: Add new exercise #1363
darts: Add new exercise #1363
Conversation
exercises/target/canonical-data.json
Outdated
"version": "1.0.0", | ||
"cases": [ | ||
{ | ||
"description": "Retun the correct amount earnt by a dart landing in a given point in the target problem.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While not wrong, earnt
is not the common spelling, earned
is the more common spelling.
exercises/target/canonical-data.json
Outdated
"cases": [ | ||
{ | ||
"property": "result", | ||
"description": "A dart lands outside the targetOnly a single book", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Period and space needed between target and Only?
exercises/target/canonical-data.json
Outdated
"description": "A dart lands outside the targetOnly a single book", | ||
"input": { | ||
"x":15.3, | ||
"y":13.2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please have at least one space following :
. Some places a space is present and in others it is absent.
exercises/target/description.md
Outdated
[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 amount of points, depending on where the dart lands: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think amount
should be plural.
The description depicts darts being thrown. Why not call this exercise Darts? |
Sounds good! |
I should have opened with this instead of nit picking... Thanks for working on this. More exercises are always welcome! No linting errors! 🥇 |
exercises/darts/description.md
Outdated
* 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)). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
concentric
should be singular.
It is my assumption that this exercise will eventually be merged. Being a new exercise an icon will need to be created. We (you and I) do not have to worry about creating this icon. This is the responsibility of the development team. However, they will need to be notified via an issue in exercism/website-icons. Refer to #1271 for the limited conversation that has taken place on the subject. This is a new activity that we must undertake when a new exercise comes our way and so the procedure is not practiced. At some point an issue would need to be created and this PR should be referenced. The development team can then more conveniently monitor the status of this PR to know when it has been merged or if it was closed (to know if an icon is needed). |
exercises/darts/canonical-data.json
Outdated
}, | ||
{ | ||
"property": "result", | ||
"description": "Input is not a number", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to this, expected should be an object containing one property, error, with its value being a string describing the error.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking that any invalid input should return null
. Maybe I should make it clear in the description, or go with the error. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The convention is that an error condition should be formatted as follows: "expected": {"error": "empty stack"}
Each track implementing this exercise can then for itself decide how to represent the error case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ErikSchierboom Yes, I'm inclined to go that way. I believe also that adding tests for inputs that are outside the problem domain in the problem specification could bring inconsistencies between implementations. Since, for example, a language with a strong type system (e.g. Haskell) shouldn't have to test for these cases since the program would not compile given incorrect input, and making it throw an exception would be counterproductive to the simplicity and core value of the problem.
So, I'll remove this test and keep going on!
I've just opened the issue for the logo creation: exercism/website-icons#13 |
exercises/darts/canonical-data.json
Outdated
}, | ||
{ | ||
"property": "result", | ||
"description": "Input is not a number", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The convention is that an error condition should be formatted as follows: "expected": {"error": "empty stack"}
Each track implementing this exercise can then for itself decide how to represent the error case.
exercises/darts/canonical-data.json
Outdated
"description": "Return the correct amount earned by a dart landing in a given point in the target problem.", | ||
"cases": [ | ||
{ | ||
"property": "result", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps score
would be a more descriptive propery name?
considerations regarding incorrect input need to be discussed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one tiny nit.
Minor nit pick, sorry. What is considered a I am not going to revoke my approval at this point because I think this is a pretty small detail that will not likely really trip anyone up too much. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 thanks for rewording.
@sdublish do you have any more input to offer? I think otherwise this PR is about ready to be squashed and merged. |
This PR is going on two weeks. It has two approvals. I will plan to squash and merge in the next 24 hours unless I see good reason to hold off. |
@rpottsoh Are you squashing it or do you want me to squash the commits? |
You don't have to. If anyone else comes along in the mean-time it would be better for them to find things in their current state, not squashed. |
Sorry for not getting back to you earlier. I think it looks pretty good; one thing I would suggest is making it explicit in the description that the center of the darts board is at (0,0). While I think most people would assume that, it would still be helpful. |
Before merging, please remove .DS_Store and exercises/.DS_Store, thank you. |
@ramadis congrats on adding a new exercise and thanks for contributing to Exercism! 🥇 |
Well done @ramadis! 🎉 |
New easy programming exercise, solved by using euclidean distance.