Sha256: b0ca9636e0889d31df024ebdaec22826a96b35150d693eb307f8773f3a92876e
Contents?: true
Size: 873 Bytes
Versions: 5
Compression:
Stored size: 873 Bytes
Contents
require_relative 'marker' require_relative 'data' module Codebreaker class Game ATTEMPTS = 5 HINTS = 2 include(Data) attr_accessor :player attr_reader :guesses, :attempts, :hints_left, :guess, :result, :requested_hint def initialize @attempts = ATTEMPTS @hints_left = HINTS @guesses = 0 @secret_code = Array.new(4) { rand(1..6) } end def compare(input) @guess = input @attempts -= 1 @guesses += 1 @result = Marker.new(@guess, @secret_code).result end def win? @result == '++++' ? true : false end def hint return @requested_hint = '' unless @hints_left.nonzero? @hints_left -= 1 @requested_hint = @secret_code[rand(0..3)] end def score return 0 if @attempts.zero? @attempts * 200 + @hints_left * 100 + 50 end end end
Version data entries
5 entries across 5 versions & 1 rubygems