Sha256: 99392e6baa5c2c2b0352421d368075898e4f61b406113688e2957c0c83a1d754
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true require_relative "../string" module Wordle class GuessAnalyzer def initialize(target_word, guess) @target_word = target_word @guess = guess end def match? @guess.downcase.strip == @target_word end def colors raw_colors.each_with_index.map do |color, i| guess_letters[i].send(color) end.join("") end def squares color_map = { green: "🟩", yellow: "🟨", gray: "⬛️" } raw_colors.each_with_index.map do |color, i| color_map[color] end.join("") end private def guess_letters @_guess_letters = @guess.chars end def raw_colors @_raw_colors ||= begin target_letters = @target_word.chars colors = [] guess_letters.each_with_index do |letter, i| if letter == target_letters[i] colors[i] = :green target_letters[i] = nil end end guess_letters.each_with_index do |letter, i| if colors[i].nil? colors[i] = if target_letters.include?(letter) :yellow else :gray end end end colors end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wordle-0.5.0 | lib/wordle/guess_analyzer.rb |