Aide pour passage de cpp a Flash pour solveur sudoku
hereticos
Messages postés5Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention29 avril 2006
-
28 avril 2006 à 17:01
cs_bali_balo
Messages postés1378Date d'inscriptionsamedi 9 octobre 2004StatutMembreDernière intervention 1 novembre 2010
-
29 avril 2006 à 13:53
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:
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");
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):
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...?
cs_bali_balo
Messages postés1378Date d'inscriptionsamedi 9 octobre 2004StatutMembreDernière intervention 1 novembre 20101 29 avril 2006 à 13:19
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...)
hereticos
Messages postés5Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention29 avril 2006 29 avril 2006 à 13:28
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