Sha256: f9bdb9f11dd3107bbeda78da78a8ed44deeab83df6bc7b626b9679f5d928ad11
Contents?: true
Size: 1.99 KB
Versions: 4
Compression:
Stored size: 1.99 KB
Contents
## ## Technique Disjoint Subset. ## class DSubset < Technique ## ## Constructeur de la classe DSubset ## ## @return Une instance de la classe DSubset ## def DSubset.creer() new() end ## ## Recherche une solution pour la technique utilisée ## ## @param grille La grille ## ## @return Les informations pour aider l'utilisateur, ou nul si la méthode ne trouve rien ## def solution(grille) grilleIndice = indice(grille) res = Array.new() [0,1,2,3,4,5,6,7,8].each { |x| col = colonne(grilleIndice,x) col.each_with_index{ |c,y| i = 0 c.each_value{|v| if v == true then i+=1 end } if i>1 then res << [x,y] col[(y+1)..(-1)].each_with_index{ |cBis,yBis| if cBis.eql?(c) then res << [x,y+yBis+1] end } if res.length == i then return res end end res = Array.new() } } [0,1,2,3,4,5,6,7,8].each { |y| lig = ligne(grilleIndice,y) lig.each_with_index{ |c,x| i = 0 c.each_value{|v| if v == true then i+=1 end } if i>1 then res << [x,y] lig[(x+1)..(-1)].each_with_index{|cBis,xBis| if cBis.eql?(c) then res << [x+xBis+1,y] end } if res.length == i then return res end end res = Array.new() } } return nil end ## ## Retourne le nombre d'étape pour faire la technique ## ## @return Le nombre d'étape(s) ## def combienEtape() return 4 end ## ## Retourne les étapes pour faire la technique ## ## @param n Le numéro de la technique ## ## @return Un text expliquant l'étape sinon ## def etape(n) case(n) when 1 return "Bienvenue sur l'explication de la technique "+self.class.to_s+"." when 2 return "Recherchez les candidats possibles pour chaque case d'une ligne/colonne." when 3 return "Il arrive que N candicats soient possibles sur N cases d'une même ligne/colonne" when 4 return "Dans ce cas, les N candidats sont applicable uniquement dans ces N cases et non ailleur." end return nil end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
Dogeku-1.0.4 | app/utils/DSubset.rb |
Dogeku-1.0.3 | app/utils/DSubset.rb |
Dogeku-1.0.2 | app/utils/DSubset.rb |
Dogeku-1.0.1 | app/utils/DSubset.rb |