0

I'm working on an exercise at the Exercism website, and I'm a little stuck on how to begin this one. I don't want any detailed answers; I'm just looking for a push in the right direction for how to begin. When given a set of (x, y) coordinates, I'd like to know if there is any particular Python module, function, etc. that can help me figure out where that point falls on a grid, especially in relation to a circle on the grid with center (0, 0).

I hope that was a bit more specific for what I'm looking for! I'm not having any particular problem writing the program (yet!), but I don't know how to even begin because I'm not sure if I need to write a function from scratch that will figure out all of the above, or if Python already has something that can help with this particular task.

Thanks!

Write a function that returns the earned points in a single toss of a Darts game.

Darts is a game where players throw darts to a target.

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 concentric) defined by the coordinates (0, 0).

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.
John Salerno
  • 83
  • 2
  • 7
  • 1
    Is there a specific part of the problem you need help with? Surely you do understand some parts, and there are some hints or ideas which you are already aware of. To avoid people wasting their and your time by explaining things you already know, you should narrow down the question to say what your own thoughts about the problem are, and what specific part you are stuck on. – kaya3 Feb 13 '20 at 05:16
  • please check this article: https://stackoverflow.com/help/how-to-ask – Rafael Feb 13 '20 at 05:32
  • Sorry, I didn't realize I was being so vague! I'll edit my post to be more specific about what I was asking. – John Salerno Feb 14 '20 at 04:31

1 Answers1

1

One way to approach this is to use the Pythagorean theorem to compute the distance between the dart and the center.

r = math.sqrt(x*x+y*y)

This will give you the distance between the dart and the center of the target.

cwbusacker
  • 507
  • 2
  • 12
  • 1
    By the way, I think your original post was okay. The only part that isn't clear is what exactly you weren't sure how to do. I assumed that you needed help thinking of the math that would solve the problem. – cwbusacker Feb 14 '20 at 06:25
  • Thank you for the comment and for the suggestion! Using that as a starting point, let's say r = 7. What I'm still unclear of is how to use that information to figure out which circle the dart landed in. There seems to be an infinite number of points that it could land, so I'm struggling to think of a clean, efficient way to calculate which of the three circles that particular point belongs to. – John Salerno Feb 14 '20 at 20:53
  • 1
    Are you familiar with if statements? start with if r > 10: return 0 elif.... – cwbusacker Feb 14 '20 at 21:04
  • Ah, I see now! I guess it was the seeming infinity of points that made me think it was trickier than it really was! I'll give it a shot tomorrow and see how it goes. Thank you! – John Salerno Feb 15 '20 at 06:44