lib/codebreaker/codebreaker.rb in codebreaker-engine-0.1.6 vs lib/codebreaker/codebreaker.rb in codebreaker-engine-0.1.7

- old
+ new

@@ -1,10 +1,10 @@ class CodeBreaker extend CodebreakerApi include Validation - attr_reader :attempts + attr_reader :attempts, :name, :difficulty, :hints LEVEL = { easy: { attempts: 15, hints: 2, difficulty: :easy }, middle: { attempts: 10, @@ -13,11 +13,11 @@ hell: { attempts: 5, hints: 1, difficulty: :hell } }.freeze def self.stats - CodeBreaker.stats_base || [] + CodeBreaker.load || [] end def initialize(name, chose_level) @codemaker = CodeMaker.new @attempts = LEVEL.dig(chose_level, :attempts) @@ -31,20 +31,26 @@ raise CustomErrors::NameInvalidError unless validate_name(name) @name = name.capitalize end + + def check_code(code) @codemaker.verify(code) dicrement_attemts unless win? save_stats if game_end? + result_code + end + + def result_code @codemaker.verified_code end def hint return unless hint? - res = @hint_cache.each_with_object(@codemaker.code) do |index, object| + res = @hint_cache.each_with_object(@codemaker.code.dup) do |index, object| object.delete_at(index) end index = rand(0..3) @hint_cache << index @hints -= 1