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