pythoncoordinatescartesian

Is there a Python module or built-in function that will help me write this program?


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.

Solution

  • 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.