Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Aide pour passage de cpp a Flash pour solveur sudoku [ Archives / Divers ] (hereticos)

vendredi 28 avril 2006 à 17:01:50 | Aide pour passage de cpp a Flash pour solveur sudoku

hereticos

Bonjour,

J'ai déjà un fait un générateur de grille sudoku, qui prenant en parametre une grille avec "x" trou et "x" chiffre d'après une grille trouvée dans des magasine spécialisée, fait subir des permutations au  niveua des lignes, colonnes et carrés pour en arriver à une nouvelle grille.

Mon problème c'est que j'aimerai également intégrer un solveur de sudoku pour ce genre de grille c'est à dire en pouvant passez en parametre par exemple un tableau 1 dimension contenant:

    5,0,0,0,0,2,9,1,0,
    0,0,0,0,9,0,0,2,3,
    0,9,1,0,3,4,8,0,0,
    6,0,0,0,0,1,0,0,0,
    4,3,0,7,6,9,0,8,5,
    0,0,0,2,0,0,0,0,7,
    0,0,5,9,2,0,6,3,0,
    3,2,0,0,5,0,0,0,0,
    0,7,9,6,0,0,0,0,2

Un solveur en cpp conviendrai parfaitement à ce cas, or je n'arrive pas à le passer correctement en flash:

le cpp ( pas de moi):

void val()                // Fonction qui crée une grille
{   
    for (int lin = 0 ; lin < size ; lin++)                      // Balyage de toutes les colonnes
        for (int col = 0 ; col < size ; col++)                  // Balyage de toutes les lignes 
            if (!Grille[col][lin])                              // Dès qu'une case est vide (=0)
            {
                for (int nb = 1 ; nb <= size ; nb++)            // On essaye tous les nombres
                {
                    if(!Col[nb-1][col] && !Lin[nb-1][lin])      // S'il n'est pas déjà mis dans la colonne
                    {                                           // ou dans la ligne, on essaye.
                        int sq = (col/3)+(lin/3)*3;             // Calcul du carré dans lequel on se trouve
                       if (!Sq[nb-1][sq])                       // Si le nombre n'est pas encore mis, on essaye
                        {
                            Grille[col][lin] = nb;              // On met le nombre
                            Col[nb-1][col] = true;              // On indique qu'on l'a mis dans la colonne
                            Lin[nb-1][lin] = true;              // On indique qu'on l'a mis dans la ligne
                            Sq[nb-1][sq] = true;                // On indique qu'on l'a mis dans le carré
                            if (col != size-1 && lin != size-1)       
{           
                                MakeGrille();      
}
             // On passe au nombre suivant via la même fonction
                            Col[nb-1][col] = false;             // On vire le chiffre de la colonne
                            Lin[nb-1][lin] = false;            // on vire le chiffre de la ligne
                            Sq[nb-1][sq] = false;              // On vire le chiffre du carré
                            Grille[col][lin] = 0;              // On éfface le nombre de la grille pour en essayer un autre
                        }
                    }
                }
                return; // une fois toutes les possibilités essayées, on retourne en arrière
            }           // Donc à la fonction MakeGrille précédente qui pourra essayer le nombre suivant

    return;            // Retour à la fonction précédente
}       


ma tentative flash:


function valider()
{   

 for (var colx = 0 ; colx < 9; linx++)                 
 {
  trace("in1");
        for (var linx = 0 ; linx < 9 ; linx++)                
{
   trace("in2");
            if (Grille[colx][linx]==0)                          
            {
    trace("in3");
                for (var nb = 1 ; nb <=9 ; nb++)          
                {
                    if(Col[nb-1][colx]==false && Lin[nb-1][linx]==false)     
                    {  
      trace("in3.5");
     
                        var sqx = int((colx/3)+(linx/3)*3);
  
                       if (Sq[nb-1][sqx]==false)                                              {
      trace("in4");
      trace(nb);
                            Grille[colx][linx] = nb;            
                            Col[nb-1][colx] = true;              
                            Lin[nb-1][linx] = true;         
                            Sq[nb-1][sqx] = true;  
        Grille2[colx][linx] =nb;
       
                            if (colx != 8 && linx != 8)
       {
       
             _root.valider(); 
       }
                            
       Col[nb-1][colx] = false;             
                            Lin[nb-1][linx] = false;          
                            Sq[nb-1][sqx] = false;              
                            Grille[colx][linx] = 0;              
                        }
                    }
     
     
                }
    
    return;
}
    
  }
 return;
  
 }


Au final au lieu de me traiter toute la grille, il ne me traite que la premiere ligne...
J'ai fait pas mal de tentative d'aptation infructeuse. Il me sort la grille suivante (étant sensée être résolvée):

grille
 
9,7,6,2,4,3,5,8,0,0,2,0,0,0,0,7,0,0,1,0,0,0,6,0,0,0,0,4,0,3,1,0,9,0,0,8,0,0,9,0,0,0,3,2,0,2,0,0,0,5,0,0,1,9,0,0,5,0,3,2,0,0,0,0,9,2,5,0,0,0,3,6,0,6,0,9,0,7,2,0,0


j'espère que vous pourrez m'aider; je vous en serai grés!

merci d'avance et a bientot:)

PS: toute les variables et tableau sont correctement initialisées, ca n'e provient pas de ca, c'est dans le traitement même peut être a cause des return...?


vendredi 28 avril 2006 à 17:06:22 | Re : Aide pour passage de cpp a Flash pour solveur sudoku

hereticos

Ce msg n'est pas le bon, le prochain est ma vrai question, dsl je ne sais comment éditer celui ci afin de le supprimer.

samedi 29 avril 2006 à 13:19:23 | Re : Aide pour passage de cpp a Flash pour solveur sudoku

bali_balo

C'est bizar....pourquoi ai-je l'impression de te connaitre "hereticos"... Mon flère me dis que tu t'appel Alexandre... Je me trompe? =D (moi jvoi pas kess ki é difficile à faire...c ke de lalgo...) bali_balo....=]

samedi 29 avril 2006 à 13:28:29 | Re : Aide pour passage de cpp a Flash pour solveur sudoku

hereticos

Etudiant en Licence Informatique à l'UFR des Sciences et Techniques du Havre (76)
Pour me contacter, b_hilmi@hotmail.com

Je vois trop pas qui tu es:p;)
Je sais que c que de lalgo lol!!!
Tu remarquera que l'ago y est hein, c juste la forme qu'y passe pas et j'aimerai savoir pk :p
Tchao Hilmi

samedi 29 avril 2006 à 13:53:14 | Re : Aide pour passage de cpp a Flash pour solveur sudoku

bali_balo

bah tu me fera voir ça de + près au boulot Alex ok! Sa doit pas être dur qd mm... ^^ A mardi et profite de ce weekend de 3 jours ^^ bali_balo....=]



Cette discussion est classé dans : grille, col, nb, lin, colx


Répondre à ce message

Sujets en rapport avec ce message

Aide pour passage de cpp a Flash pour solveur sudoku [ par hereticos ] Bonjour,J'ai déjà un fait un générateur de grille sudoku, qui prenant en parametre une grille avec "x" trou et "x" chiffre d'après une grille trouvée Problème super() héritage [ par Scooper ] Bonjour à tous,Je suis actuellement sur un projet en AS 2 / Flash MX 2004 Professionnal,Je possède une classe "Element" qui contient 3 attributs privé Faire un affichage à partir d'un fichier PHP [ par Florent06 ] Salut Je suis désolé mais je ne savais pas où poster. Je voudrais faire à peu près comme ceci mais je voudrais faire le Mon code mange toute la mémoire ! [ par barn333 ] Bonjour, je suis un super noob et je bricole des trucs en récupérant des fragments de code ici et là. l'anime tourne bien mais ralentir fortement au clip et _root [ par martialb75 ] Bonjour, J'utilise flash plus comme un designer qu'un codeur. J'ai téléchargé les sources d'un jeux simple mais fun. Il fonctionne a merveille mais je mc qui avance tout seul via un nb aleatoire [ par jobrider ] bonjour,je cherche au demarrage d'un flash à faire avancer un mc le long d'un guide en focntion d'un nombre aléatoire.Qlq aurait une piste ou un fla q mc qui avance tout seul via un nb aleatoire [ par jobrider ] bonjour,je cherche au demarrage d'un flash à faire avancer un mc le long d'un guide en focntion d'un nombre aléatoire.Qlq aurait une piste ou un fla q déplacement sur une grille [ par heika ] Avant tout j'me présente: Ronan étudiant en communication.Je suis nouveau donc, si je ne poste pas au bon endroit merci de déplacer mon topic :)Voilà c'est à propos de l'utulisation de fichiers XML [ par faris68 ] Salut à tous,Je suis novice en codage ActionScript donc SVP soyez indulgent avec moi.J'expose mon problème:Je voudrais récupéré dans un fichier XML di Mask et coloriage en ligne innovateur (je pense) [ par antbilly ] Allô à tous,Je veux concevoir un coloriage en ligne nouveau. Je ne veux pas qu'on clique des zones pour y appliquer une couleur (ce serait facile) mai


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.