module Sudoku
Constants
- ADAPTERS
Adaptateurs de base
- VERSION
Public Class Methods
best_class_for(n)
click to toggle source
Renvoie la classe de la première implémentation dont la zone comprend n
@param [Fixnum] n La base du sudoku @return [Class] La première classe dont la zone comprend n, ou la première classe donc la zone est 0 (zone par défaut)
# 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
Also aliased as: []
best_grid_for(n=3)
click to toggle source
Renvoie une instance de la meilleure implémentation pour un sudoku de base n
@param [Fixnum] n La base du sudoku @return [Grid]
# File lib/sudoku.rb, line 133 def best_grid_for n=3 n = n.to_i best_class_for(n).new n end
Also aliased as: new
define_class_for(zone, adapter)
click to toggle source
Ajoute un adapteur pour la zone definie.
@param [Range, Fixnum] zone La zone de validité de l'adapteur @param [Class] adapter L'adaptateur à ajouter
# File lib/sudoku.rb, line 125 def define_class_for zone, adapter ADAPTERS.unshift [zone, adapter] end
Also aliased as: []=
parse(str)
click to toggle source
Renvoie un nouveau Sudoku
a partir de la chaine donnee
@param [String] str Une chaine Sutxt @return [Grid] Un sudoku rempli avec les données Sutxt
# 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