class Codebreaker::Game

Constants

ATTEMPTS
HINTS

Attributes

attempts[R]
guess[R]
guesses[R]
hints_left[R]
player[RW]
requested_hint[R]
result[R]

Public Class Methods

new() click to toggle source
# File lib/codebreaker/game.rb, line 14
def initialize
  @attempts = ATTEMPTS
  @hints_left = HINTS
  @guesses = 0
  @secret_code = Array.new(4) { rand(1..6) }
end

Public Instance Methods

compare(input) click to toggle source
# File lib/codebreaker/game.rb, line 21
def compare(input)
  @guess = input
  @attempts -= 1
  @guesses += 1
  @result = Marker.new(@guess, @secret_code).result
end
hint() click to toggle source
# File lib/codebreaker/game.rb, line 32
def hint
  return @requested_hint = '' unless @hints_left.nonzero?
  @hints_left -= 1
  @requested_hint = @secret_code[rand(0..3)]
end
score() click to toggle source
# File lib/codebreaker/game.rb, line 38
def score
  return 0 if @attempts.zero?
  @attempts * 200 + @hints_left * 100 + 50
end
win?() click to toggle source
# File lib/codebreaker/game.rb, line 28
def win?
  @result == '++++' ? true : false
end