18 lines
355 B
Elixir
18 lines
355 B
Elixir
defmodule Darts do
|
|
@type position :: {number, number}
|
|
|
|
@doc """
|
|
Calculate the score of a single dart hitting a target
|
|
"""
|
|
@spec score(position) :: integer
|
|
def score({x, y}) do
|
|
in_radius = (x ** 2 + y ** 2) ** 0.5
|
|
cond do
|
|
in_radius <= 1 -> 10
|
|
in_radius <= 5 -> 5
|
|
in_radius <= 10 -> 1
|
|
true -> 0
|
|
end
|
|
end
|
|
end
|