CodeS-SourceS
Rechercher un code, un tuto, une réponse

Sudoku Solution sous EXCEL

Soyez le premier à donner votre avis sur cette source.

Vue 2 188 fois - Téléchargée 294 fois

Description

Cette idée trotait dans mon esprit depuis longtemps : résoudre un SUDOKU sous EXCEL.

Version 0 : (simple)
2 Grilles :
- La grille d'origine du SUDOKU à résoudre
- La grille de solution

3 procédures :
- Init qui initialise la Grille Solution.
- Soluce : qui lance la résolution
- Passe : qui effectue une passe

Algorithme :
- Au départ : chaque case pourrait recevoir un chiffre de 1 à 9.
- Ensuite : on supprime les chiffres de la ligne en cours.
- Ensuite : on supprime les chiffres de la colonne en cours.
- Ensuite : on supprime les chiffres de la Zone 3 x 3 en cours.
- Puis s'il reste un seul chiffre : le recopier vers la grille d'origine.

Et on recommence ..
On s'arrête dès que la grille est pleine.
==========================================================================
Version 1 : (améliorée)
4 Niveaux : Facile, Moyen, Difficile, Demoniac

4 Grilles :
- La grille d'origine du SUDOKU à résoudre
- La grille de travail
- La grille vierge
- La grille de solution

5 procédures :
- Init qui initialise les Grilles.
- Vider_Grilles qui recopie la grille vierge sur les 3 autres (contenu et format)
- Creer_Grille : qui créer une grille dépendant du niveau choisi
- Creer_Grille_et_Resoudre : appelle Creer_Grille puis lance la résolution
- Passe : qui effectue une passe

Algorithme :

Création:
- Au départ :
Ligne 1 : 1 2 3 4 5 6 7 8 9
Ligne 2 : 4 5 6 7 8 9 1 2 3
Ligne 3 : 7 8 9 1 2 3 4 5 6

Ligne 4 : 2 3 4 5 6 7 8 9 1
Ligne 5 : 5 6 7 8 9 1 2 3 4
Ligne 6 : 8 9 1 2 3 4 5 6 7

Ligne 7 : 3 4 5 6 7 8 9 1 2
Ligne 8 : 6 7 8 9 1 2 3 4 5
Ligne 9 : 9 1 2 3 4 5 6 7 8

ensuite mélanger aléatoirement
échanger lignes 1 et 2 : échanger colonnes 1 et 2
échanger lignes 1 et 3 : échanger colonnes 1 et 3
échanger lignes 2 et 3 : échanger colonnes 2 et 3

ainsi de suite ..

Réolution :
- Au départ : chaque case pourrait recevoir un chiffre de 1 à 9.
- Ensuite : on supprime les chiffres de la ligne en cours.
- Ensuite : on supprime les chiffres de la colonne en cours.
- Ensuite : on supprime les chiffres de la Zone 3 x 3 en cours.
- Puis s'il reste un seul chiffre : le recopier vers la grille d'origine.

Et on recommence ..
On s'arrête dès que la grille est pleine.
MAIS il y a un HIC :
Au niveau Difficile et Demoniac : ca bloque.

- Manuellement : je choisis un cellule pouvant recevoir deux chiffres !
J'en pose un au hasard dans la grille à résoudre et je lance une passe.
si ca bloque de nouveau je répète cette opération.

Dans une prochaine version, je tenterais de la programmer

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.