-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlucky.exs
43 lines (33 loc) · 879 Bytes
/
lucky.exs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
defmodule Jogada do
def cria_jogada do
do_cria_jogada(HashSet.new, 0)
end
defp do_cria_jogada(acc, 6) do
IO.inspect acc
acc
end
defp do_cria_jogada(acc, _) do
newset = HashSet.put(acc, :random.uniform(59)+1)
do_cria_jogada(newset, HashSet.size(newset))
end
end
defmodule Jogador do
def joga_ate_acertar do
do_jogar([], Jogada.cria_jogada, numeros)
end
def numeros do
Enum.into([26, 29, 34, 38, 50, 60], HashSet.new)
end
defp do_jogar(tentativas, jogada, numeros) do
cond do
jogada == numeros ->
tentativas.size
not jogada in tentativas ->
do_jogar([jogada | tentativas], Jogada.cria_jogada, numeros)
true ->
do_jogar(tentativas, Jogada.cria_jogada, numeros)
end
end
end
tentativas = Jogador.joga_ate_acertar
IO.puts "Eu tive que jogar #{tentativas} para ficar rico!"