diff --git a/darts/darts.py b/darts/darts.py index d65a3f7..b21cb4a 100644 --- a/darts/darts.py +++ b/darts/darts.py @@ -1,5 +1,7 @@ """Darts is a game where players throw darts at a target.""" +from math import sqrt + def score(x: int, y: int) -> int: """ @@ -16,4 +18,16 @@ def score(x: int, y: int) -> int: :param y: The y-coordinate where the dart landed :return: The points scored (0, 1, 5, or 10) """ - pass + # Calculate distance form the center of the circle (0, 0) + distance: float = sqrt(pow(x, 2) + pow(y, 2)) + # Outside target + if distance > 10: + return 0 + # Outer circle + if distance > 5: + return 1 + # Middle circle + if distance > 1: + return 5 + # Inner circle + return 10 diff --git a/darts/darts_test.py b/darts/darts_test.py index 0d0dbe0..b53333f 100644 --- a/darts/darts_test.py +++ b/darts/darts_test.py @@ -1,4 +1,4 @@ -# pylint: disable=C0301 +# pylint: disable=C0114, C0115, C0116, R0904 # These tests are auto-generated with test data from: # https://github.com/exercism/problem-specifications/tree/main/exercises/darts/canonical-data.json diff --git a/solutions/python/darts/1/darts.py b/solutions/python/darts/1/darts.py new file mode 100644 index 0000000..d65a3f7 --- /dev/null +++ b/solutions/python/darts/1/darts.py @@ -0,0 +1,19 @@ +"""Darts is a game where players throw darts at a target.""" + + +def score(x: int, y: int) -> int: + """ + Calculate the points scored in a single toss of a Darts game. + + Given the x and y coordinates where a dart lands, returns the score + based on the distance from the center (0, 0): + - Inner circle (distance <= 1): 10 points + - Middle circle (distance <= 5): 5 points + - Outer circle (distance <= 10): 1 point + - Outside target (distance > 10): 0 points + + :param x: The x-coordinate where the dart landed + :param y: The y-coordinate where the dart landed + :return: The points scored (0, 1, 5, or 10) + """ + pass