Skip to content

Commit 2854bf0

Browse files
committed
fix elixir guessing-game
1 parent ea63c70 commit 2854bf0

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed
Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
11
defmodule GuessingGame do
2-
@spec compare(Number, Number) :: <<_::56, _::_*8>>
3-
def compare(secret_number, guess) do
4-
case {secret_number, guess} do
5-
{secret_number, guess} when is_number(guess) ->
6-
cond do
7-
secret_number == guess -> "Correct"
8-
secret_number + 1 == guess -> "So close"
9-
secret_number - 1 == guess -> "So close"
10-
secret_number < guess -> "Too high"
11-
secret_number > guess -> "Too low"
12-
true -> "Make a guess"
13-
end
2+
@spec compare(Number, any) :: <<_::56, _::_*8>>
143

15-
{_, _} ->
16-
"Make a guess"
17-
end
18-
end
4+
def compare(_, guess \\ :guess)
5+
def compare(_, guess) when not is_integer(guess), do: "Make a guess"
6+
def compare(secret_number, secret_number), do: "Correct"
197

20-
def compare(_) do
21-
"Make a guess"
22-
end
8+
def compare(secret_number, guess)
9+
when is_number(guess) and abs(secret_number - guess) == 1,
10+
do: "So close"
11+
12+
def compare(secret_number, guess) when is_number(guess) and secret_number < guess,
13+
do: "Too high"
14+
15+
def compare(secret_number, guess) when is_number(guess) and secret_number > guess, do: "Too low"
2316
end

0 commit comments

Comments
 (0)