Programmation en c++

Signaler
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009
-
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009
-
salut,




j'ai un probleme de faire un jeu de sudoku en c++ ...je ne sais pas les etapes a suivre....je dois commencer le programme par :


#include


using namespace std;


je ne sais pas comment ecrire le 1er ligne qui indique l'array[9][9]....et je dois encore utiiser des boucles comme FOR,IF,WHILE.....en faite j'ai besoin du code .

A chaque tour, le joueur doit positionner un chiffre dans une case de son choix à partir des cases déjà renseignées, de manière à compléter toute la grille sans violer les règles du jeu. le programme doit  permettre de jouer au sudoku à
partir d’un ensemble de grilles prédéfinies dont l’une est tirée au hasard au début de chaque partie.Au début de chaque tour, le programme affiche la grille et invite le joueur à faire une proposition. Si la proposition faite viole l’une des règles du jeu, le programme indique la ou les règles violées et a la fin la  partie se termine lorsque le joueur atteint son objectif ou abandonne la parti..

merci.

28 réponses

Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
Salut fkhaled08,

Pour faire ton projet de sudoku,

- déclare un tableau de 9*9
- remplis le de cette manière :

123456789
234567891
345678912
456789123
567891234
678912345
789123456
891234567
912345678

- ensuite, tu permute aléatoirement, les lignes entre elles
- puis tu permute aléatoirement les colonnes entre elles

C'est une façon de générer une grille pseudo-aléatoirement,
qui ne demande pas beaucoup d'effort et qui marche parfaitement.

Voilà. J'espère que j'ai pu t'aider.

Cordialement, Grégory.
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

 je sais presuqe l'idee  mais le prob. que je ne sais pas comment l'ecrire ??
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
Bah en fait, tu n'as même pas besoin de C++, du simple C suffit:

Tu fais par exemple :

int Array[9][9]; //variable globale correspondant au tableau de int

void InitializeArray()
{
   int i=0, j=0;
   for(i=0;i<9;i++)
      for(j=0;j<9;j++)
         Array[0][j]=j%9;
}

void ExchangeCases()
{
   int alea = rand()%9, i=0, j=0;

   for(i=0;i<9;i++)
      for(j=0;j<9;j++)
         Array[i][j]=Array[alea][j];

   for(i=0;i<9;i++)
      for(j=0;j<9;j++)
         Array[i][j]=Array[i][alea];
}

int main()
{
   srand(time(NULL));
   InitializeArray(); //tu remplis le tableau Array
   //suite du programme...
   return 0;
}
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
J'ai oublié de mettre aussi la fonction ExchangeCases() dans le main.
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

le probleme que je suis oblige de  le faire en c++ ..c 1 mini  projet
en c++ : puis-je ecrire int tab[9][9]; aulieu de int array[9][9]; c la meme chose ??
  voila mon prog. mais c pas fini bie sure:

#include
using namespace std;
int tab[9][9];
int i,j ;
int temp;
for(i=0;i<=0;i++)
{
   for (j=0;j<=9;j++)
   {

j'ai une idee de prendre un exemple non resolu d'1 jeu de sudoku et je veux que le programme affiche les nombres fixes et qu'ils soient visible pour l'utilisateur,,,,et en meme temps je voudrais ecrire les solutions dans les cases vide mais d'une maniere qu'ils ne soient pas visible pour l'utilisteur,,,,et en ca que l'utilisateur fait rentrer un nombre valide un message apparait  cin<<"reponse correcte"; et en cas d'une reponse fausse un message apparait "saisie errone"qu'est ce tu penses ??
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
int tab[9][9] et int array[9][9] c'est exactement pareil.

tab et array sont les noms des tableaux, alors tu peux les remplacer par ce que tu veux.

Bah en fait, pour que les chiffres du tableau ne soient pas visible par l'utilisateur, c'est simple, il suffit de les mettre en mémoire sans les afficher.

C'est ce que j'ai fait avec la fonction d'initialisation.

Ensuite, ceux que tu veux afficher, tu les affiche ainsi :

cout << tab[0][6] << endl; si tu veux afficher la case [0][6] du tableau.

cout << " " << endl; si tu veux afficher un espace.

Pour scanner les entrées de l'utilisateur tu fais par exemple :

int Nombre = 0;
cin >> Nombre; //scanne le nombre entré par l'utilisateur

Tu auras évidemment scanné avant la ligne et la colonne entrée par l'utilisateur.

Ensuite, tu vérifie si Tab[colonne][ligne]==Nombre;

si c'est bon, tu affiche "Ok" avec
cout << "Ok" << endl;

sinon,
cout << "Erreur" << endl;
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

voici mon jeu : 5    3    4   ,  6     7     8    ,   (9)      (1)    (2)
                       6    7    2   ,  1     9     5    ,   (3)     (4)     (8)
                      1     9    8   ,  3     4     2    ,   (5)       6      (7)
                      8     5    9   ,   7    6      1   ,     4        2       3
                      4      2   6   ,   8    5      3   ,      7        9      1
                      7      1   3   ,   9    2      4   ,      8        5       6
                      9      6   1   ,   5    3      7   ,      2         8       4
                      2      8    7  ,   4    1      9   ,      6         3       5
                      3      4    5  ,    2   8      6   ,      1         7       9
les nombres colores ce sont les reponses que l'utilisateur doit inserer.
 par exemple pour la case [0][0]  si je veux inserer le nom. 5 j'ecris de cette maniere :
cout<<tab[0][0]<<endl;
cout<<"5"<<endl
cout<<tab[0][1]<<endl;
cout<<"3"<<endl;
et pour next case  qu'est ce que je fais pour enserer 4 mais en meme temps ne soit pas visible pour l'util. jusqu'il rentre la correcte reponse
et ainsi de suite ou  c'est faut et  il y a une autre maniere d'ecriture ??
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
Bah pour pas que l'utilisateur voie la réponse, tu fais tab[0][2] << "4" mais je ne suis pas sur...
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

 5    3    4   ,   6     7     8    ,   (9)    (1)    (2)
 6    7    2   ,   1     9     5    ,   (3)     (4)     (8)
 1    9    8   ,   3     4     2    ,   (5)       6      (7)
 8    5    9   ,   7     6     1   ,     4        2       3
 4     2   6   ,   8     5     3   ,     7        9       1
 7     1   3   ,   9     2      4   ,    8        5       6
 9     6   1   ,   5     3      7   ,    2        8       4
 2     8   7  ,    4     1      9   ,    6        3       5
 3     4   5  ,    2     8      6   ,     1        7      9
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

il me semble que je ne vais pas comleter ce code et je vais echouer ds cette matiere :)
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
Bah si tu veux, y a un très bon tutoriel sur le Site du zéro, tu peux aller voir...
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

ok merciiii...
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
De rien, j'espère que ça t'aidera.
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

est ce qu'il ya un site que je peut trouver dedans le pseudo code du sudoku et je le traduit en c++ moi meme si possible ???
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
Bah tu peux aller voir ici :

http://www.cppfrance.com/code.aspx?ID=35399
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
Sinon j'ai trouvé ce super site  : http://www.top-sudoku.com/
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

comment mettre des nombres aleatoirement ds un tableau ??
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
Si tu veux mettre des nombres aléatoires dans un tableau, tu fais :

srand(time(NULL))
int i=0, j=0;
for(i=0;i<9;i++)
   for(j=0;j<9;j++)
      Tab[i][j]=rand()%9;
Messages postés
21
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
1 juin 2009

 can  u write the code for me ?? coz really i cant write it ....am sorry
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
I had written the code previously in my first answer I think.

You should look there...