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
Vive como se fosse morrer amanhã.
Estude como se fosse viver para sempre.
Einstein

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.