using DelimitedFiles function check_known(word, knowns) if isempty(knowns) return true end for (k, v) in knowns if v == '.' continue end if word[k] == only(v) continue else return false end end return true end function check_wrong(word, wrongs) if isempty(wrongs) return true end for wrong in wrongs l, i = wrong if word[i] == only(l) return false else continue end end return true end begin words = readdlm("wordle.txt")[:] keep = [] for (index, word) in enumerate(words) if length(word) == 5 push!(keep, index) end end words = lowercase.(words[keep]) end # First Guesses # PENIS # SOARE 3.45 # RAISE 3.46 # ARISE 3.47 # SERAI 3.52 begin wrongs = [] banned = "erahiync" |> collect contained = "ulp" |> collect knowns = "s...." |> collect |> enumerate wrongs = [('s', 5), ('u', 2), ('l', 3), ('p', 4)] # (letter, index) @assert length(knowns) == 5 i = 0 for word in words if any(occursin.(banned, word)) continue end if all(occursin.(contained, word)) if check_known(word, knowns) if check_wrong(word, wrongs) println(word) i += 1 end end end end println("Possibilities: ", i) end