-
Notifications
You must be signed in to change notification settings - Fork 0
/
game.rb
65 lines (53 loc) · 1.12 KB
/
game.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
require_relative 'player'
require_relative 'question'
class Game
def start
create_players
play_rounds
print_final
end
def create_players
@players = [
Player.new,
Player.new
]
end
def play_rounds
current_player = 0
until game_over?
correct = ask_question
unless correct
@players[current_player].lose_life
print_scores
puts "----- NEW TURN -----"
end
current_player = current_player == 0 ? 1 : 0
end
end
def ask_question
question = Question.new
puts "What does #{question} equal?"
answer = gets.chomp.to_i
question.correct?(answer)
end
def game_over?
@players.any? { |p| p.lives <= 0 }
end
def print_scores
puts "P1: #{@players[0].lives}/3 vs P2: #{@players[1].lives}/3"
end
def print_final
print_scores
player1 = @players[0]
player2 = @players[1]
winner = nil
if player1.lives > 0
winner = player1
else
winner = player2
end
puts "Player #{winner.id} wins with a score of #{winner.lives}!"
puts "----- Game Over -----"
puts "Good bye!"
end
end