Class: Codeguessing::Console

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

Constant Summary collapse

MESSAGE =
YAML.load_file(File.join(File.dirname(__FILE__), 'data/messages.yml'))

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConsole

Returns a new instance of Console.



7
8
9
10
11
# File 'lib/codeguessing/console.rb', line 7

def initialize
  @path = File.join(File.dirname(__FILE__), 'data/scores.yml')
  @scores = load(@path) || []
  @game = Game.new
end

Instance Attribute Details

#gameObject (readonly)

Returns the value of attribute game.



3
4
5
# File 'lib/codeguessing/console.rb', line 3

def game
  @game
end

#scoresObject (readonly)

Returns the value of attribute scores.



3
4
5
# File 'lib/codeguessing/console.rb', line 3

def scores
  @scores
end

Instance Method Details

#gamingObject



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/codeguessing/console.rb', line 28

def gaming
  action = gets.chomp
  if action == 'hint'
    puts game.hint
    return go(true)
  end
  if game.valid?(action)
    puts game.guess(action)
  else
    puts MESSAGE['invalid_data']
  end
  go(true)
end

#go(knowed = false) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/codeguessing/console.rb', line 18

def go(knowed = false)
  rules unless knowed
  puts "Attempt(s): #{game.attempts} | Hint(s): #{game.hint_count}"
  case game.win?
  when true then win
  when false then loose
  else gaming
  end
end

#rulesObject



13
14
15
16
# File 'lib/codeguessing/console.rb', line 13

def rules
  puts MESSAGE['rules?']
  puts MESSAGE['rules'].join("\n") unless confirm?
end