wordl-solver 1.3.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb3bf465211db353a6705e7a34a9678ab1c054e02fc8ee99c6420577705b8a09
4
- data.tar.gz: 90e1a0ccec7e76c4c4e9609f8e55a858c557b7db48d73658ec0f3c8acb59f3cf
3
+ metadata.gz: a4a62f4eeebb61e2c99c23028737e472001a3f09380397d4b30e0d1564a2784f
4
+ data.tar.gz: 3d7ffec7b36cbd41937eae53a7a104a35e116357fae62726640549412cbcdf96
5
5
  SHA512:
6
- metadata.gz: 7056a94cb5ad3f64cd8bbef26ae67e5bc72a7f85df20ad5084ef49e7a8f882236cb6fd6c97de30ee67f338035b14b5176838a74ac09bc473d8c5de46e33ff23b
7
- data.tar.gz: b549d2effd15ae76b8910efaba4912d3f2f2974c335a2b5d5e99f08bcf79433f6256d2da37ce02f3e5ce57019e282d88a0caf185f05eb2ac135ce7831b1931b2
6
+ metadata.gz: a02c49ebcaaefb0d97cb40ffec08f34d8875a70e624325570198024770a72b4ca0de8806ac1dfe26a4c3c19f3d4fb32e3177e46f281b1e59acbc8f1f19031388
7
+ data.tar.gz: 32c6b2fa2b25b50a25bc0f61c63d2b92c7dab9760d3334d65dd5cbc9a89fb940309260654338eaea9aad2e0562c55abdbb297915a744d7f222ffa2e247118ecc
data/Gemfile.lock CHANGED
@@ -110,4 +110,4 @@ DEPENDENCIES
110
110
  simplecov
111
111
 
112
112
  BUNDLED WITH
113
- 1.17.3
113
+ 2.6.6
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.0
1
+ 1.4.2
data/lib/wordl_solver.rb CHANGED
@@ -18,7 +18,7 @@ class WordlSolver
18
18
  @greys = greys
19
19
  @greens = greens
20
20
  @yellows = yellows
21
- @possible_words = @possible_words.nil? || @possible_words.empty? ? LETTER_WORDS : @possible_words
21
+ @possible_words = @possible_words.nil? || @possible_words.empty? ? LETTER_WORDS.dup : @possible_words
22
22
  filter_greens
23
23
  filter_yellows
24
24
  filter_greys
@@ -41,17 +41,37 @@ class WordlSolver
41
41
  yellow_letters = @yellows.values.flatten.uniq
42
42
  @possible_words.select! do |word|
43
43
  possible = true
44
+ # Check that the word doesn't have yellow letters in the same position
44
45
  word.chars.each_with_index do |letter, index|
45
- possible = false if @yellows[index].include?(letter)
46
+ if @yellows[index].include?(letter)
47
+ possible = false
48
+ break
49
+ end
50
+ end
51
+ # Check that the word contains all yellow letters
52
+ if possible && !yellow_letters.empty?
53
+ yellow_letters.each do |letter|
54
+ unless word.include?(letter)
55
+ possible = false
56
+ break
57
+ end
58
+ end
46
59
  end
47
- possible = false unless yellow_letters.all? { |letter| word.include?(letter) }
48
60
  possible
49
61
  end
50
62
  end
51
63
 
52
64
  def filter_greys
53
65
  @possible_words.reject! do |word|
54
- @greys.any? { |letter| word.include?(letter) }
66
+ reject = false
67
+ @greys.each do |letter|
68
+ if @greens.values.include?(letter)
69
+ reject = true if word.count(letter) > 1
70
+ else
71
+ reject = true if word.include?(letter)
72
+ end
73
+ end
74
+ reject
55
75
  end
56
76
  end
57
77
  end
@@ -44,7 +44,7 @@ class WordlSolverInterface
44
44
  else
45
45
  @greens[t] = letters[1]
46
46
  end
47
- @greys.reject! { |letter| @greens.include?(letter) || @yellows.values.flatten.include?(letter) }
47
+ @greys.reject! { |letter| @greens.values.include?(letter) || @yellows.values.flatten.include?(letter) }
48
48
  end
49
49
 
50
50
  def ask_for_letters_and_colours
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 1.3.0 ruby lib
5
+ # stub: wordl-solver 1.4.2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "wordl-solver".freeze
9
- s.version = "1.3.0"
9
+ s.version = "1.4.2"
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-06-16"
14
+ s.date = "2025-03-20"
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]
@@ -35,7 +35,7 @@ Gem::Specification.new do |s|
35
35
  ]
36
36
  s.homepage = "http://github.com/gkosmo/wordl-solver".freeze
37
37
  s.licenses = ["MIT".freeze]
38
- s.rubygems_version = "3.3.10".freeze
38
+ s.rubygems_version = "3.3.7".freeze
39
39
  s.summary = "This gem solves wordl puzzles.".freeze
40
40
 
41
41
  if s.respond_to? :specification_version then
@@ -45,13 +45,13 @@ Gem::Specification.new do |s|
45
45
  if s.respond_to? :add_runtime_dependency then
46
46
  s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
47
47
  s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
48
- s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
48
+ s.add_development_dependency(%q<bundler>.freeze, [">= 1.0"])
49
49
  s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
50
50
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
51
51
  else
52
52
  s.add_dependency(%q<shoulda>.freeze, [">= 0"])
53
53
  s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
54
- s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
54
+ s.add_dependency(%q<bundler>.freeze, [">= 1.0"])
55
55
  s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
56
56
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
57
57
  end
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: 1.3.0
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - george kosmopoulos
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-16 00:00:00.000000000 Z
11
+ date: 2025-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shoulda
@@ -42,14 +42,14 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
@@ -108,7 +108,7 @@ homepage: http://github.com/gkosmo/wordl-solver
108
108
  licenses:
109
109
  - MIT
110
110
  metadata: {}
111
- post_install_message:
111
+ post_install_message:
112
112
  rdoc_options: []
113
113
  require_paths:
114
114
  - lib
@@ -123,8 +123,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubygems_version: 3.3.10
127
- signing_key:
126
+ rubygems_version: 3.5.9
127
+ signing_key:
128
128
  specification_version: 4
129
129
  summary: This gem solves wordl puzzles.
130
130
  test_files: []