begin process at 2010 02 10 16:54:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > ALGO RÉSOLUTION DE SUDOKU.

ALGO RÉSOLUTION DE SUDOKU.


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :Sudoku, Programmation, Algo, Console, Source Niveau :Initié Date de création :10/05/2009 Vu :2 298

Auteur : mamsk00

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Bonjour,

ben voici mon algo de résolution d'un sudoku que j'ai utiliser pour mon programme SudoBrol.

Voila, j'aimerais avoir vos avis.




Source

  • //-----------------------------------------
  • // Vérification des lignes et des colonnes.
  • //-----------------------------------------
  • int ligne, colonne, pave, erreur=0;
  • for(int a=1; a<=9; a++)
  • {
  • for(int b=1; b<=9; b++)
  • {
  • ligne=0;
  • colonne=0;
  • for(int c=1; c<=9; c++)
  • {
  • if(b==sudoku[a][c])
  • {
  • ligne++;
  • }
  • if(b==sudoku[c][a])
  • {
  • colonne++;
  • }
  • if(ligne>1||colonne>1)
  • {
  • erreur++;
  • }
  • }
  • }
  • }
  • //-----------------------------------------
  • // Vérification des pavés.
  • //-----------------------------------------
  • for(int a=0; a<=6; a+=3)
  • {
  • for(int b=0; b<=6; b+=3)
  • {
  • for(int c=1; c<=9; c++)
  • {
  • pave=0;
  • for(int d=1+b; d<=3+b; d++)
  • {
  • for(int e=1+a; e<=3+a; e++)
  • {
  • if(c==sudoku[d][e])
  • {
  • pave++;
  • }
  • if(pave>1)
  • {
  • erreur++;
  • }
  • }
  • }
  • }
  • }
  • }
  • //-----------------------------------------
//-----------------------------------------
// Vérification des lignes et des colonnes.
//-----------------------------------------

    int ligne, colonne, pave, erreur=0;

    for(int a=1; a<=9; a++)
    {
        for(int b=1; b<=9; b++)
        {
            ligne=0;
            colonne=0;

            for(int c=1; c<=9; c++)
            {
                if(b==sudoku[a][c])
                {
                    ligne++;
                }
                if(b==sudoku[c][a])
                {
                    colonne++;
                }
                if(ligne>1||colonne>1)
                {
                    erreur++;
                }
            }
        }
    }

//-----------------------------------------
// Vérification des pavés.
//-----------------------------------------


    for(int a=0; a<=6; a+=3)
    {
        for(int b=0; b<=6; b+=3)
        {
            for(int c=1; c<=9; c++)
            {
                pave=0;

                for(int d=1+b; d<=3+b; d++)
                {
                    for(int e=1+a; e<=3+a; e++)
                    {
                        if(c==sudoku[d][e])
                        {
                            pave++;
                        }
                        if(pave>1)
                        {
                            erreur++;
                        }
                    }
                }
            }
        }
    }

//-----------------------------------------



 Sources de la même categorie

Source avec Zip Source avec une capture CALENDRIER (WIN64) par BruNews
Source avec Zip Source avec une capture IMPRESSION EN WIN32 API AVEC OPTIONS par racpp
Source avec Zip Source avec une capture INFOTIP SHELL EXTENSION (BULLE DE L'EXPLORATEUR WINDOWS) (WI... par racpp
Source avec Zip Source avec une capture BROUILLAGE DES FICHIERS JAVASCRIPT ET CSS(WIN32) par gagah1
Source avec Zip Source avec une capture CHANGE CURSEUR par ganjarasta

 Sources en rapport avec celle ci

ALIGNER TEXTE CONSOLE par CptPingu
Source avec Zip Source avec une capture LIBGRAPHC - DESSIN D'UI EN MODE CONSOLE par Nenyan
Source avec Zip MORPION EN CONSOLE par Altaris
Source avec Zip SUDOKU CONSOLE par fratom
Source avec Zip JEU D'ECHEC EN MODE CONSOLE par fratom

Commentaires et avis

Commentaire de mamsk00 le 10/05/2009 23:36:43

Je pourrais boucler les boucles à la moindre erreur mais je voulais savoir le nombre d'erreur sur la grille.

Commentaire de marik7335 le 11/05/2009 14:07:49 10/10

Serait-il possible d'avoir l'exécutable dans le zip, s.v.p ? Je n'ai pas de compilateur sous la main pour tester.
Marik7335.

Commentaire de gaumerie le 11/05/2009 16:19:02

Ca ne résoud rien, si?

Commentaire de mamsk00 le 11/05/2009 16:22:11

Ben si lol, une fois les boucles fini, il suffit de tester la variable erreur pour savoir si la grille respecte la règle du sudoku ou pas.

Commentaire de gaumerie le 11/05/2009 16:30:55

Ah ok je viens de comprendre! J'ai pas testé mais je suppose que tu l'as fait et moi en tout cas ca me semble correcte. Mais j'avais fait il y a longtemps un programme de résolution de sudoku et ca utilisait un système de masques, qui je crois est beaucoup plus rapides (beaucoup moins de tests). Ici, pour un programme de vérification comme le tien, il y a surement moyen d'utiliser un système de masques aussi et ca serait quand meme beaucoup mieux.

Commentaire de mamsk00 le 11/05/2009 17:13:26

Oui l'algo marche très bien, je l'utilise dans mon programme SudoBrol.

Commentaire de gaumerie le 11/05/2009 17:16:54

Tu fais quand même 18 tests par case. Il y a moyen de ne faire que 3 tests par case si je ne me trompe pas

Commentaire de Chubab le 19/05/2009 15:47:56

Je dirais simplement que c'est plus un algo de verification qu'un algo de resolution...
Si tu as un sudoku "neuf" cet algo ne le rempliras pas...

Si ton but est simplement de verifier et que tu veux etre optimale le mieux selon moi serais d'avoir un array chiffre[9] et que pour admettons chaque ligne tu fais chiffre[sudoku[a][b]]++ et tu tu verifie par le fait meme, en t'assurant de ne pas depasser 1, tout les chiffres d'une meme ligne d'un seul coup...

Tu dois ensuite repeter pour chaque colonnes et chaques paves, mais c'est deja beaucoup plus rapide!

Commentaire de mamsk00 le 19/05/2009 16:35:50

Mon code est très bien comme ca pour le moment, je l'utilise dans mon programme SudoBrol. Je poseterais l'algo de génération plus tard. Pour ceux qui voudrais SudoBrol envoyer moi un mail mamsk@live.be

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

algo ou source ? [ par JoebarGlut ] Salut, Je suis en train de coder mon premier jeu en mode multijoueur en LAN et j'aurais une ou deux kestions algorithmiques.1- doit-il forcement y avo Equivalences C/C++ [ par ndubien ] Bonjour,Existe-t'il un équivalent de clrscr (); en programmation c++ console ?Existe-t'il un équivalent de gotoxy (x,y); < Programmation multilingue suite [ par VinceVG ] SalutJe souhaite traduire un source cpp. Plus précisemment je souhaiterais que a traduction se trouve dans un fichier texte (de type .ini par exemple) Windows XP + programmation console [ par mondrone ] Salut. Je voudrais savoir si Windows XP n'est pas l&#233;g&#232;rement incompatible avec les programmes en mode console, car depuis le temps que je pr Sudoku en langage C [ par Bavimo ] Bonjour. Il y a quelques semaine j'avais signalé le site http://www.i2i.fr dans lequel je mettais à disposition un source en C qui résoud les grilles PROGRAMMATION CPP MAIS PAS EN MODE CONSOLE [ par COLLECTION ] Bonjour j'aimerais savoir si il exixte un livre sur la programmation windows avec devcpp qui expliquerait tout les apis windowsainsi que la creation d Livre "Débuter avec Qt 3" [ par jlbrd ] Le livre "Débuter avec Qt 3" est maintenant disponible sur le site francophone de la programmation Qt.Ce livre, destiné aux débutants, traite des poin du .exe au code source [ par baboin ] Bonjour à tous, voilà je suis encore un novice en programmation et je programme seulement en C. En fait je voudrais savoir s'il est possible de récupé programmation de classes [ par rachid1977 ] Bonjour tout le monde,j´ai besoin d´un programme en C++ qui a une classe vehicule avec 2 classe derivee Voiture et camion, les variables sont nombre d problème de programmation en C++ sur bloodshed Dev-C++ [ par saturne1985 ] Bonjour,Je possède Bloodshed Dev-C++.Lorsque je programme en langage C, cela fonctionne mais dès que je programme en C++, lors de la compilation il me


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales