Class: Codebreaker::Game
- Inherits:
-
Object
- Object
- Codebreaker::Game
- Defined in:
- lib/codebreaker_first.rb
Overview
Rubocop
Instance Attribute Summary collapse
-
#code ⇒ Object
Returns the value of attribute code.
-
#game_result ⇒ Object
Returns the value of attribute game_result.
-
#user_tries ⇒ Object
Returns the value of attribute user_tries.
Instance Method Summary collapse
- #check_code(input_code) ⇒ Object
-
#initialize ⇒ Game
constructor
A new instance of Game.
- #loose ⇒ Object
- #results ⇒ Object
- #save_result(name) ⇒ Object
- #start ⇒ Object
- #win ⇒ Object
Constructor Details
#initialize ⇒ Game
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
#code ⇒ Object
Returns the value of attribute code.
9 10 11 |
# File 'lib/codebreaker_first.rb', line 9 def code @code end |
#game_result ⇒ Object
Returns the value of attribute game_result.
9 10 11 |
# File 'lib/codebreaker_first.rb', line 9 def game_result @game_result end |
#user_tries ⇒ Object
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 |
#loose ⇒ Object
44 45 46 |
# File 'lib/codebreaker_first.rb', line 44 def loose @game_result = false end |
#results ⇒ Object
54 55 56 |
# File 'lib/codebreaker_first.rb', line 54 def results Result.results end |
#save_result(name) ⇒ Object
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 |
#start ⇒ Object
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 |
#win ⇒ Object
40 41 42 |
# File 'lib/codebreaker_first.rb', line 40 def win @game_result = true end |