Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2307 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Résolu] Sudoku, trouver les coordonnées d'un tableau 3x3

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Sudoku, trouver les coordonnées d'un tableau 3x3

n°1738023
koskoz
They see me trollin they hatin
Posté le 27-05-2008 à 19:57:35  profilanswer
 

Salut tout le monde,
je suis en train de développer un Sudoku en langage C, et j'en suis à la phase des 3 règles.
C'est à dire qu'un joueur ne peut pas rentrer un chiffre si celui-ci est déjà présent dans la ligne, dans la colonne ou dans la région 3x3 où il se trouve.
 
Pour les deux premiers cas, pas de problème, je sais les gérer, par contre le dernier me pose quelques soucis.
 
Idéalement, je devrai avoir deux for imbriqués qui ne font chacun que trois tours.
 

Code :
  1. int_num_lig = (num_lig+1)/3;
  2.     int_num_col = (num_col+1)/3;
  3.     for(i=int_num_lig; i<int_num_lig+1; i++)
  4.     {
  5.         for(j=int_num_col; j<int_num_lig+1; j++)
  6.         {
  7.             if(chiffre == grille[i][j])
  8.                 return 0;
  9.         }
  10.     }


 
num_lig et num_col +1 parce que ceux-ci commencent à 0.
Le problème, c'est que ma condition d'arrêt ne fonctionne pas, et je n'arrive pas à la trouver :/
 
Votre aide me serait précieuse, merci :jap:


Message édité par koskoz le 27-05-2008 à 20:24:35

---------------
Twitter
mood
Publicité
Posté le 27-05-2008 à 19:57:35  profilanswer
 

n°1738031
MEI
|DarthPingoo(tm)|
Posté le 27-05-2008 à 20:13:08  profilanswer
 

Code :
  1. /*
  2. *  fichier estDansRegion.cpp
  3. *  M. MAURICARD François-Xavier Pascal - 05/12/2005
  4. *
  5. * ¤ Cherche s'il existe la valeur dans la region de la position considérée de la grille. ¤
  6. * PRE : (0 <= pos.col <= 8) && (0 <= pos.lig <= 8)  && (1 <= val <= 9).
  7. *
  8. */
  9. #include "Sudoku.h"
  10. bool estDansRegion(const position &pos, const int val, const int grille[9][9])
  11. {
  12. bool res = false;
  13. // Calcul des coordonées de la case de début de la region.
  14. int debut_region_x = (pos.lig / 3) * 3;
  15. int debut_region_y = (pos.col / 3) * 3;
  16. for (int x = debut_region_x ; x < debut_region_x + 3 && !res ; x++) // Parcours des lignes.
  17. {
  18.  for (int y = debut_region_y ; y < debut_region_y + 3 && !res ; y++) // Parcours des colonnes.
  19.  {
  20.   res = (grille[x][y] == val);
  21.  }
  22. }
  23. return res;
  24. }


 


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1738032
koskoz
They see me trollin they hatin
Posté le 27-05-2008 à 20:18:40  profilanswer
 

J'ai un peu de mal à comprendre pourquoi vous divisez par 3 pour ensuite multiplier par 3 ?
J'ai rien dit, on récupère l'entier de la division qui est ensuite multiplié par 3.

 

Et le +3 dans chaque boucle ne nous fera pas sortir de la région pour passer à une autre adjacente ?

 

C'est ce que je voulais faire mais j'avais des difficultés à l'exprimer.

 

Merci :jap:


Message édité par koskoz le 27-05-2008 à 20:24:07

---------------
Twitter
n°1738033
MEI
|DarthPingoo(tm)|
Posté le 27-05-2008 à 20:23:35  profilanswer
 

Moi j'avais fait ça empiriquement. :D
 
Mais en gros comme c'est une division entiere (x / 3) * 3 donne le multiple de 3 correspondant au nombre, donc la premiere case de la region.
 
Et on on fais plus trois car une region fait 3... et que bien sur on veut regarder que ces 3 cases là.


Message édité par MEI le 27-05-2008 à 20:24:24

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Résolu] Sudoku, trouver les coordonnées d'un tableau 3x3

 

Sujets relatifs
[Résolu] Comment savoir si la fonction open se déroule bien ?-Résolu- Formulaire en fin de page...qui ne s'affiche pas
[RESOLU] split d'un String/expression reguliere[RESOLU ] exec() return value = 11
[RESOLU] [VBA Excel] ajout dynamique de boutons dans une feuille excelRésolu. [JavaScript] - Petite question sur l'attribut disabled
[C] Stockage tableau dans Mémoire partagée[RESOLU] problème script et commande awk
[Résolu] Lettres accentuées et substitution[Resolu] Enregistrer un fichier sous.....
Plus de sujets relatifs à : [Résolu] Sudoku, trouver les coordonnées d'un tableau 3x3


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR