wordl-solver 0.2.5 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/wordl_solver.rb +15 -4
- data/wordl-solver.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd25b19a895e26f76a0a54958837d3060d6cc1a6f841ee591fb955c906e84157
|
4
|
+
data.tar.gz: df22d9551946792629679399209ed8d08b511c5e779ef49c57e6bd8f6b0f9535
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8a7013eae494b0dbc7520c0df9366af215c318e97afd44a10596d8943f3abdd4e855aa4a3ae7260375a0d390c3766da6ed4ef6c8f54d2d3387c8043aa588164
|
7
|
+
data.tar.gz: e976e4b8895a49cc40eeb6aa73e62c34286a8830fa261827ecb1d01e67253c0ec981c04beb626f730c039d1ac38991fb5f992aa8e0ef87318dc89dff69642c51
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
data/lib/wordl_solver.rb
CHANGED
@@ -5,8 +5,7 @@ require 'fileutils'
|
|
5
5
|
|
6
6
|
FILE_PATH = File.join(File.dirname(__FILE__), '5_words.csv')
|
7
7
|
|
8
|
-
LETTER_WORDS = []
|
9
|
-
LETTER_FRENQUENCY = %w[e t a o i n s h r d l c u m f w y g p b v k j x q z].reverse.freeze
|
8
|
+
LETTER_WORDS = []
|
10
9
|
|
11
10
|
CSV.foreach(FILE_PATH) do |row|
|
12
11
|
LETTER_WORDS << row[0]
|
@@ -80,6 +79,7 @@ class WordlSolver
|
|
80
79
|
end
|
81
80
|
|
82
81
|
def find_possible_words
|
82
|
+
@possible_words = @possible_words.empty? ? LETTER_WORDS : @possible_words
|
83
83
|
filter_greens
|
84
84
|
filter_yellows
|
85
85
|
filter_greys
|
@@ -88,10 +88,11 @@ class WordlSolver
|
|
88
88
|
def present_possible_words
|
89
89
|
puts 'here are the existing words'
|
90
90
|
hash_word_frequency = {}
|
91
|
+
set_letters_frequencies
|
91
92
|
@possible_words.each do |word|
|
92
93
|
count = 0
|
93
94
|
word.chars.uniq.each do |char|
|
94
|
-
count +=
|
95
|
+
count += @frenquencies[char]
|
95
96
|
end
|
96
97
|
hash_word_frequency[word] = count
|
97
98
|
end
|
@@ -102,7 +103,7 @@ class WordlSolver
|
|
102
103
|
end
|
103
104
|
|
104
105
|
def filter_greens
|
105
|
-
@possible_words
|
106
|
+
@possible_words.select! do |word|
|
106
107
|
put_in = true
|
107
108
|
@greens.each do |key, value|
|
108
109
|
next if value.nil?
|
@@ -134,4 +135,14 @@ class WordlSolver
|
|
134
135
|
def check_word_correct(letters)
|
135
136
|
letters.length != 2 || !%w[s y g].include?(letters[0])
|
136
137
|
end
|
138
|
+
|
139
|
+
def set_letters_frequencies
|
140
|
+
@frenquencies = {}
|
141
|
+
@possible_words.each do |word|
|
142
|
+
word.chars.each do |letter|
|
143
|
+
@frenquencies[letter] = 0 if @frenquencies[letter].nil?
|
144
|
+
@frenquencies[letter] += 1
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
137
148
|
end
|
data/wordl-solver.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: wordl-solver 0.
|
5
|
+
# stub: wordl-solver 1.0.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "wordl-solver".freeze
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "1.0.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["george kosmopoulos".freeze]
|
14
|
-
s.date = "2022-
|
14
|
+
s.date = "2022-05-19"
|
15
15
|
s.description = "This gem helps you solve wordl puzzles. It does so by asking you for the letters position you know, the letters you know exists and the ones you know don't exists. It then proposes words depending on how good they are by weighting the letters by their frequency in the english language.".freeze
|
16
16
|
s.email = "gkosmo1@hotmail.com".freeze
|
17
17
|
s.executables = ["wordl-solver".freeze]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wordl-solver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- george kosmopoulos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: shoulda
|