Sha256: 923a29b10831768b1eaaa7184ba9dbf2733091a07fb22442463c1bd185837076
Contents?: true
Size: 815 Bytes
Versions: 2
Compression:
Stored size: 815 Bytes
Contents
# frozen_string_literal: true module Codebreaker class Gameload attr_reader :clues CLUES = { exact: :exact, non_exact: :non_exact }.freeze def initialize(guess, secret_code) @secret_code = secret_code @guess = guess @clues = [] end def match collected = @secret_code.zip(@guess).delete_if { |code, guess| write_to_clues(CLUES[:exact]) if code == guess } @secret_code, @guess = collected.transpose return unless @guess non_exact_match end def non_exact_match @guess.compact.each do |num| next unless @secret_code.any?(num) write_to_clues(CLUES[:non_exact]) @secret_code[@secret_code.index(num)] = nil end end def write_to_clues(clue) @clues.push(clue) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
codebreaker_manfly-0.1.1 | lib/codebreaker/gameload.rb |
codebreaker_manfly-0.1.0 | lib/codebreaker/gameload.rb |