-
Notifications
You must be signed in to change notification settings - Fork 0
/
original.rb
66 lines (56 loc) · 1.57 KB
/
original.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
require 'pp'
@domande = [{:phrase=>"Is it a reptile?", :yes=>1, :no=>2},
{:phrase=>"Does it eat mosquitos?", :yes=>"geco", :no=>"lizard"},
{:phrase=>"Does it make kittens?", :yes=>"cat", :no=>3},
{:phrase=>"Does it have a pocket on the front?",
:yes=>"kangaroo",
:no=>"dog"}]
start_question = 0
def user_answer
answer = gets
if answer =~ /y/
:yes
else
:no
end
end
def check_answer( question_number, answer )
choice = @domande[ question_number ][ answer ]
if choice.is_a?( Numeric )
ask_question( choice )
else
domanda = @domande[ question_number ]
puts "I think it's a " + domanda[ answer ]
puts "Is that correct?"
is_correct = user_answer
if is_correct == :yes
puts "Yay, I got it right"
else
puts "What was the animal?"
new_animal = gets.chomp
puts "What question should I ask to know that it's a " + new_animal + " and not a " + domanda[ answer ] + "?"
new_phrase = gets.chomp
new_question = { :phrase => new_phrase,
:yes => new_animal,
:no => domanda[ answer ] }
@domande << new_question
new_index = @domande.size - 1
@domande[ question_number ][ answer ] = new_index
end
end
end
def ask_question( question_number )
domanda = @domande[ question_number ]
puts domanda[ :phrase ]
answer = user_answer
check_answer( question_number, answer )
end
while true do
puts "Think of an animal..."
ask_question( start_question )
puts "Play again?"
answer = user_answer
break if answer == :no
puts
end
pp @domande