Class: Game

Inherits:
Object
  • Object
show all
Defined in:
lib/game.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGame

Returns a new instance of Game.



10
11
12
13
14
# File 'lib/game.rb', line 10

def initialize
  @guesses = []
  @started = false
  @sequence = SequenceGenerator.new.random
end

Instance Attribute Details

#guessesObject (readonly)

Returns the value of attribute guesses.



8
9
10
# File 'lib/game.rb', line 8

def guesses
  @guesses
end

#sequenceObject (readonly)

Returns the value of attribute sequence.



8
9
10
# File 'lib/game.rb', line 8

def sequence
  @sequence
end

Instance Method Details

#guess(guess) ⇒ Object

Raises:

  • (GameNotStarted)


21
22
23
24
25
26
27
28
# File 'lib/game.rb', line 21

def guess(guess)
  raise GameNotStarted unless @started
  if GuessValidator.valid?(guess)
    process_guess(guess)
  else
    'You must enter a valid guess: four characters long, consisting of (R)ed, (G)reen, (B)lue, or (Y)ellow.'
  end
end

#startObject

Raises:

  • (GameAlreadyStarted)


16
17
18
19
# File 'lib/game.rb', line 16

def start
  raise GameAlreadyStarted if @started
  @started = true
end