sudokuhandler 0.1.3 → 0.1.4
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.
- data/lib/sudoku/logic.rb +1 -1
- data/lib/sudoku/solver.rb +13 -3
- data/lib/sudoku/version.rb +1 -1
- data/tests/test_sudoku.rb +4 -5
- metadata +6 -6
data/lib/sudoku/logic.rb
CHANGED
data/lib/sudoku/solver.rb
CHANGED
@@ -138,11 +138,11 @@ module Sudoku
|
|
138
138
|
res
|
139
139
|
end
|
140
140
|
|
141
|
-
#Resoud le sudoku par backtracking
|
142
|
-
# @return
|
141
|
+
# Resoud le sudoku par backtracking
|
142
|
+
# @return [Fixnum] le nombre de nombres ajoutés dans la grille
|
143
143
|
def solve_backtrack!
|
144
144
|
res = solve_naive!
|
145
|
-
|
145
|
+
|
146
146
|
each do |x, y, cur_val|
|
147
147
|
next unless cur_val.zero?
|
148
148
|
p = possibilities x, y
|
@@ -160,6 +160,16 @@ module Sudoku
|
|
160
160
|
res
|
161
161
|
end
|
162
162
|
|
163
|
+
# Renvoie un nouveau sudoku reolu par backtracking
|
164
|
+
# Si le temps de solution depasse timeout, le solveur est arrete
|
165
|
+
# @param [Fixnum] timeout Le temps maximum en secondes
|
166
|
+
# @return [Sudoku::Grid] Le sudoku resolu, ou en partie resolu si le timeout a joue
|
167
|
+
def solve_backtrack_timeout timeout
|
168
|
+
res = self.clone
|
169
|
+
Thread.new(res){|s| s.solve_backtrack!}.join(timeout)
|
170
|
+
res
|
171
|
+
end
|
172
|
+
|
163
173
|
#Enleve les nombres qui sont impossibles de la grille
|
164
174
|
# @return (Fixnum) le nombre de nombres enlevés
|
165
175
|
def remove_impossible!
|
data/lib/sudoku/version.rb
CHANGED
data/tests/test_sudoku.rb
CHANGED
@@ -139,7 +139,7 @@ module GridTest
|
|
139
139
|
|
140
140
|
def test_import
|
141
141
|
s = create.make_valid
|
142
|
-
s2 = Sudoku::Sn.new(s.
|
142
|
+
s2 = Sudoku::Sn.new(s.base).import s
|
143
143
|
s2.each do |x,y,v|
|
144
144
|
assert_equal s.get(x,y), v, "Importation d'une grille vers grille generique, cellules egales"
|
145
145
|
end
|
@@ -190,11 +190,10 @@ module SolverTest
|
|
190
190
|
assert s.complete?
|
191
191
|
end
|
192
192
|
|
193
|
-
def
|
193
|
+
def test_solve_backtrack_timeout
|
194
194
|
s = create.make_valid_incomplete
|
195
|
-
|
196
|
-
|
197
|
-
assert s.complete?, "Toujours une solution en backtracking en max. #{SOLVER_TIMEOUT}s"
|
195
|
+
s2 = s.solve_backtrack_timeout(SOLVER_TIMEOUT)
|
196
|
+
assert s2.complete?, "Toujours une solution en backtracking en max. #{SOLVER_TIMEOUT}s"
|
198
197
|
end
|
199
198
|
end
|
200
199
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sudokuhandler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
16
|
-
requirement: &
|
16
|
+
requirement: &8669870 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *8669870
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: yard
|
27
|
-
requirement: &
|
27
|
+
requirement: &8669630 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *8669630
|
36
36
|
description: Highly optimised Sudoku objects and mixins for Ruby
|
37
37
|
email: titouanchristophe@gmail.com
|
38
38
|
executables: []
|