Module: Sudoku
- Defined in:
- lib/sudoku.rb,
lib/sudoku/grid.rb,
lib/sudoku/logic.rb,
lib/sudoku/solver.rb,
lib/sudoku/version.rb,
lib/sudoku/generator.rb,
ext/sudoku.c
Defined Under Namespace
Modules: Generator, Grid, Logic, Solver Classes: MalformedSutxtError, NotCompatibleError, S3, S4_15, Sn
Constant Summary collapse
Class Method Summary collapse
-
.best_class_for(n) ⇒ Class
(also: [])
Renvoie la classe de la première implémentation dont la zone comprend n.
-
.best_grid_for(n = 3) ⇒ Grid
(also: new)
Renvoie une instance de la meilleure implémentation pour un sudoku de base n.
-
.define_class_for(zone, adapter) ⇒ Object
(also: []=)
Ajoute un adapteur pour la zone definie.
-
.parse(str) ⇒ Grid
Renvoie un nouveau Sudoku a partir de la chaine donnee.
Class Method Details
.best_class_for(n) ⇒ Class Also known as: []
Renvoie la classe de la première implémentation dont la zone comprend n
106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/sudoku.rb', line 106 def best_class_for n n = n.to_i ADAPTERS.each do |ad| zone = ad[0] adapter = ad[1] return adapter if zone == 0 case n when zone return adapter end end end |
.best_grid_for(n = 3) ⇒ Grid Also known as: new
Renvoie une instance de la meilleure implémentation pour un sudoku de base n
133 134 135 136 |
# File 'lib/sudoku.rb', line 133 def best_grid_for n=3 n = n.to_i best_class_for(n).new n end |
.define_class_for(zone, adapter) ⇒ Object Also known as: []=
Ajoute un adapteur pour la zone definie.
125 126 127 |
# File 'lib/sudoku.rb', line 125 def define_class_for zone, adapter ADAPTERS.unshift [zone, adapter] end |
.parse(str) ⇒ Grid
Renvoie un nouveau Sudoku a partir de la chaine donnee
142 143 144 145 146 147 148 149 |
# File 'lib/sudoku.rb', line 142 def parse str unless str =~ /(\d+):(.+);/ raise MalformedSutxtError, "It doesn't seem to be a sutxt line..." end base = $1.to_i return best_grid_for(base).load(str) end |