zaterdag 3 maart 2012

Conclusie

Als gevolg van de resultaten kunnen we beschouwen dat een computer even geschikt is als onze hersennen voor het oplossen van een sudoku. Het moet stapsgewijs gebeuren en de computer doe het sneller, immers omdat het voor deze berekening werd "gespecialiseerd" aan de hand van een programma.

Het gaat om de oplossingen voor lege vakken steeds opnieuw te checken a.h.v. meerdere functie, waarbij de centrale hart van de programma de functie only_one() is. Deze zal immers oplossingen valideren. De andere functies zijn er dan om het aantal oplossingen te beperken door eliminatie.

In totaal krijgen we de hiƫrachie:

-readfile('tekst') #lees de tekst document
-classify('lijnen') #zet de lijnen om tot een lijst van matrices met een bepaalde sleutel (=dictionary)
-solve(grids): #meesterfunctie die de sudoku's zal oplossen. Eerst worden de lege vakken "geregistreerd".
      while not test = = empties: #de volgende functies werden in een loop gezet die op ieder moment checkt
                                              #als de functies nog iets veranderen aan de oplossingen
            #functie voor validatie van oplossingen
            -only_one(grid,empties)
            #functies voor eliminatie van oplossingen
            -X_Wings(empties)
            -align(empties)
            -double(empties)
-check('oplossingen') #ga na of er geen fout is opgetreden in de programma (bv. twee keer '4' in een rij)
-cum_sum('oplossingen','coƶrdinaten') #berekent de totale som van de cijfers gevormd door bepaalde    
                                                           #vakken
-write_new('oplossingen','bestandsnaam') #schrijft de oplossingen in een nieuw tekst document

Er werden oorspronkelijk ook andere functies gemaakt maar deze werden verwijderd doordat ze overbodig waren. Voor sudoku's met een hogere moeilijkheidsgraad zullen ze misschien wel bruikbaar kunnen worden.

Geen opmerkingen:

Een reactie posten