-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathcorrect_answer_behavior.rb
More file actions
47 lines (45 loc) · 1.57 KB
/
correct_answer_behavior.rb
File metadata and controls
47 lines (45 loc) · 1.57 KB
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
class CorrectAnswerBehavior
def was_correctly_answered
if @in_penalty_box[@current_player]
if @is_getting_out_of_penalty_box
puts "#{@players[@current_player]} got out of penalty box"
puts 'Answer was correct!!!!'
@purses[@current_player] += 1
puts "#{@players[@current_player]} now has #{@purses[@current_player]} Gold Coins."
winner = did_player_win()
@current_player += 1
@current_player = 0 if @current_player == @players.length
puts "Player is now #{@players[@current_player]}"
winner
else
puts "#{@players[@current_player]} stays in penalty box"
@current_player += 1
@current_player = 0 if @current_player == @players.length
puts "Player is now #{@players[@current_player]}"
true
end
else
puts "Answer was correct!!!!"
@purses[@current_player] += 1
puts "#{@players[@current_player]} now has #{@purses[@current_player]} Gold Coins."
winner = did_player_win
@current_player += 1
@current_player = 0 if @current_player == @players.length
puts "Player is now #{@players[@current_player]}"
return winner
end
end
private
def did_player_win
!(@purses[@current_player] == 6)
end
public
def initialize seed = nil
srand(seed) if seed
@players = %w[Alice Bob Cecil]
@purses = @players.map { rand(3) + 5 }
@in_penalty_box = @players.map { rand(2) == 0 }
@current_player = rand(@players.count)
@is_getting_out_of_penalty_box = @in_penalty_box[@current_player] && rand(2) == 0
end
end