Class: Codebreaker::Game
- Inherits:
-
Object
- Object
- Codebreaker::Game
- Includes:
- Data
- Defined in:
- lib/codebreaker/game.rb
Constant Summary collapse
- ATTEMPTS =
5
- HINTS =
2
Instance Attribute Summary collapse
-
#attempts ⇒ Object
readonly
Returns the value of attribute attempts.
-
#guess ⇒ Object
readonly
Returns the value of attribute guess.
-
#guesses ⇒ Object
readonly
Returns the value of attribute guesses.
-
#hints_left ⇒ Object
readonly
Returns the value of attribute hints_left.
-
#player ⇒ Object
Returns the value of attribute player.
-
#requested_hint ⇒ Object
readonly
Returns the value of attribute requested_hint.
-
#result ⇒ Object
readonly
Returns the value of attribute result.
Instance Method Summary collapse
- #compare(input) ⇒ Object
- #hint ⇒ Object
-
#initialize ⇒ Game
constructor
A new instance of Game.
- #score ⇒ Object
- #win? ⇒ Boolean
Methods included from Data
Constructor Details
Instance Attribute Details
#attempts ⇒ Object (readonly)
Returns the value of attribute attempts.
12 13 14 |
# File 'lib/codebreaker/game.rb', line 12 def attempts @attempts end |
#guess ⇒ Object (readonly)
Returns the value of attribute guess.
12 13 14 |
# File 'lib/codebreaker/game.rb', line 12 def guess @guess end |
#guesses ⇒ Object (readonly)
Returns the value of attribute guesses.
12 13 14 |
# File 'lib/codebreaker/game.rb', line 12 def guesses @guesses end |
#hints_left ⇒ Object (readonly)
Returns the value of attribute hints_left.
12 13 14 |
# File 'lib/codebreaker/game.rb', line 12 def hints_left @hints_left end |
#player ⇒ Object
Returns the value of attribute player.
11 12 13 |
# File 'lib/codebreaker/game.rb', line 11 def player @player end |
#requested_hint ⇒ Object (readonly)
Returns the value of attribute requested_hint.
12 13 14 |
# File 'lib/codebreaker/game.rb', line 12 def requested_hint @requested_hint end |
#result ⇒ Object (readonly)
Returns the value of attribute result.
12 13 14 |
# File 'lib/codebreaker/game.rb', line 12 def result @result end |
Instance Method Details
#compare(input) ⇒ Object
21 22 23 24 25 26 |
# 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 ⇒ Object
32 33 34 35 36 |
# 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 ⇒ Object
38 39 40 41 |
# File 'lib/codebreaker/game.rb', line 38 def score return 0 if @attempts.zero? @attempts * 200 + @hints_left * 100 + 50 end |
#win? ⇒ Boolean
28 29 30 |
# File 'lib/codebreaker/game.rb', line 28 def win? @result == '++++' ? true : false end |