-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathanimal_quiz.rb
70 lines (55 loc) · 1.17 KB
/
animal_quiz.rb
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class No
attr_accessor :sim, :nao, :valor
def initialize(valor)
@valor = valor
end
def animal?
@sim.nil? and @nao.nil?
end
def pergunta?
not animal?
end
end
def imprimir_arvore(no)
return if no.nil?
puts no.valor
imprimir_arvore(no.sim)
imprimir_arvore(no.nao)
end
raiz = No.new('Cachorro')
pai = nil
no_atual = raiz
while true
puts "pense em um animal"
if no_atual.animal?
puts "vc pensou em #{no_atual.valor}?"
resposta = gets.chomp
if resposta.upcase == "S"
puts "acertei porra!!"
else
puts "qual o animal que vc pensou?"
animal = No.new(gets.chomp)
puts "faça uma pergunta que o diferencie de #{no_atual.valor}?"
pergunta = No.new(gets.chomp)
pergunta.sim = animal
pergunta.nao = no_atual
if pai.nil?
raiz = pergunta
elsif no_atual == pai.nao
pai.nao = pergunta
elsif no_atual == pai.sim
pai.sim = pergunta
end
end
no_atual = raiz
else
puts no_atual.valor
resposta = gets.chomp
pai = no_atual
if resposta.upcase == "S"
no_atual = no_atual.sim
else
no_atual = no_atual.nao
end
end
end