batebates/sudoku

View on GitHub
pseudoCodeTechniqueSudoku

Summary

Maintainability
Test Coverage
#Reduction par croix
#Application a une case
Entrée: une case
Sortie: un booleen #Vrai quand des candidats sont trouvés faux sinon
bool crossReduction(aCase) do

    parcoursRegionCase |eltcase|:
        si la case contient un (chiffre):
            bool+=aCase.enleveCandidat(chiffre)
        fin si
    fin parcours
    parcoursColonneCase |eltcase|:
        si la case contient un (chiffre):
            bool+=aCase.enleveCandidat(chiffre)
        fin si
    fin parcours
    parcoursLigneCase |eltcase|:
        si la case contient un (chiffre):
            bool+=aCase.enleveCandidat(chiffre)
        fin si
    fin parcours
    
end
    

#Unicite
#Recherche d'application:

Entrée:void
Sortie:liste de 4 cases si technique applicable rien sinon

liste uniciteSearch() do
    listeSortie
    ParcoursGrille |eltCase| do
        si eltCase contient uniquement 2 candidats
            liste2Candidats<les 2 candidats
            ParcoursLigne(eltCase) |eltLigneCase|
                si eltLigneCase contient ces 2 candidats minimums
                    ParcoursColonne(eltLigneCase) |eltDiagonalCase|
                        si eltDiagonalCase contient ces 2 candidats minimums AND eltColonneCase = getCase(eltDiagonalCase.ligne,eltCase.colone) contient ces 2 candidats minimums
                            return listeSortie = eltCase,eltLigneCase,eltColonneCase,eltDiagonalCase
                        finsi
                    finparcours
                finsi
            finparcours
        finsi
    finparcours
end