wordl-solver 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12440553edb5c06e61fdb1f41ec3f43d1bdeb440b41255933cd07564ba7f1606
4
- data.tar.gz: bb5765773d94e26cfac030301d64671df970b4962ff5bedc23ee40ca4541989f
3
+ metadata.gz: 305e535ba00f1575dc37467e0470f5dbeaa09305d97249a32e424bd2e11ac681
4
+ data.tar.gz: fe0e636175eb643a90b505c6b61c95f2b9e5d981099a65621b1a51c966806191
5
5
  SHA512:
6
- metadata.gz: f4766ed5464a1bdc2cd27a2d53e2b4318329a10319bbcc34e713574826ef4081d94119c8bfd5ce0bf1aca07f2ae12946cb2057a6aaf4a2b8e2d926d1746fe845
7
- data.tar.gz: 073f5ee750959c6bb8cdb686cbccb320e78c40016fcd064762fefabd995c18153782318e64dc79eebaca39dbc109310cc5bbda01b66ffb8ad468e6fdcabf1c08
6
+ metadata.gz: 0d1a26c4dd20265ddecb849c41abc24c09e5439d86723ff3626fb7866ca6e5e16d10742faa38b64b203bf70716390726d0989f4bc69cb553d9c92fde32a61f3a
7
+ data.tar.gz: b3f343941f8ed958327604f0c454d922adeb7f14a66eff876ca15a074e64aebf7d27073f84c70b1b33dea328e39861dce1fe65fad4ccd4d43fe34b28992b0ef5
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.5
1
+ 0.2.6
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 = [].freeze
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 += LETTER_FRENQUENCY.index(char)
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 = (@possible_words.empty? ? LETTER_WORDS : @possible_words).select do |word|
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.2.5 ruby lib
5
+ # stub: wordl-solver 0.2.6 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "wordl-solver".freeze
9
- s.version = "0.2.5"
9
+ s.version = "0.2.6"
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-04-29"
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.2.5
4
+ version: 0.2.6
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-04-29 00:00:00.000000000 Z
11
+ date: 2022-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shoulda