SmtC: Show me the Code
Ole Peter Smith
Instituto de Matemática e Estatística
Universidade Federal de Goiás
http://www.olesmith.com.br

Generation
Quando eu dou de comer aos pobres
Me chamam de santo
Quando eu pergunto por que eles são pobres
Me chamam de comunista
Dom Helder Câmera

Eliminate elements by Unicity

  1. Zero each element and recalculate Topology.
  2. Topology Length one in Element? Remove.
Python Listing: Unique.py.
from random import *


class Sudoku_Topology_Unique_Remove(
    ):
    
    ##!
    ##! Remove (zero) randomly selected cell.
    ##! For puzzle generation.
    ##!
    
    def Topology_Unique_Remove_One(self,topology):
        removes=self.Topology_Unique_Removes(topology)

        removed=False
        if (len(removes)>0):
            n=randrange(0,len(removes))
            remove=removes[n]
            r=remove[0]
            s=remove[1]
            
            removed=True
            self.S[r][s]=0
        

        return removed
    
    def Topology_Unique_Removes(self,topology):
        removes=[]
        for r in range(self.M):
            for s in range(self.M):
                if (self.S[r][s]>0):
                    old=self.S[r][s]
                    
                    self.S[r][s]=0
                    rtopology=self.Topology_Initial()
                    self.S[r][s]=old
                    
                    if (len(rtopology[r][s])==1):
                        #print (r,s,self.S[r][s],rtopology[r][s])
                        removes.append([r,s,self.S[r][s]])
        return removes
Messages:
0 secs.