Class: Codebreaker::Game

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

Overview

Rubocop

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGame

Returns a new instance of Game.



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

def initialize
  @code = ''
  @user_tries = 0
end

Instance Attribute Details

#codeObject

Returns the value of attribute code.



9
10
11
# File 'lib/codebreaker_first.rb', line 9

def code
  @code
end

#game_resultObject

Returns the value of attribute game_result.



9
10
11
# File 'lib/codebreaker_first.rb', line 9

def game_result
  @game_result
end

#user_triesObject

Returns the value of attribute user_tries.



9
10
11
# File 'lib/codebreaker_first.rb', line 9

def user_tries
  @user_tries
end

Instance Method Details

#check_code(input_code) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/codebreaker_first.rb', line 22

def check_code(input_code)
  @user_tries += 1
  return loose if @user_tries >= MAX_TRIES
  return win if input_code == @code

  validate_code input_code

  result = ''

  @code.chars.each.with_index do |char, index|
    result << '+' if char == input_code[index]

    result << '-' unless char == input_code[index]
  end

  result
end

#looseObject



44
45
46
# File 'lib/codebreaker_first.rb', line 44

def loose
  @game_result = false
end

#resultsObject



54
55
56
# File 'lib/codebreaker_first.rb', line 54

def results
  Result.results
end

#save_result(name) ⇒ Object

Raises:

  • (Exception)


48
49
50
51
52
# File 'lib/codebreaker_first.rb', line 48

def save_result(name)
  raise Exception, 'To save, you must finish the game!' if @game_result.nil?

  Result.save name, @user_tries, @game_result
end

#startObject



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

def start
  4.times do
    @code << rand(1...6).to_s
  end
end

#winObject



40
41
42
# File 'lib/codebreaker_first.rb', line 40

def win
  @game_result = true
end