Bonjour,
Je cherche à faire un Sudoku et j'ai un problème pour changer les valeurs de mes QVector.
J'ai une QList de QVector pour représenter les lignes, les valeurs sont initialisées à -1 au départ. J'essaye ensuite de faire des insertions dans ma grille en modifiant les valeurs.
Voici mon Grille.h
et voici ma fonction inserer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 #ifndef GRILLE_H_ #define GRILLE_H_ #include <QString> #include <QMatrix> #include <QVector> #include <QList> class Grille { private: //La taille de la grille. int taille_; //La matrice représentant le grille. QList<QVector<int> > matrice_; Grille(); public: virtual ~Grille(); static Grille* chargerGrille(QString path); void setTaille(int taille); int getTaille(); QList<QVector<int> > getMatrice(); bool controleLigne(int index, int valeur); bool controleColonne(int index, int valeur); bool controleCarre(int ligne, int col, int valeur); QList<int> getPossibilite(int ligne, int col); void inserer(int ligne, int col, const int &valeur); }; #endif /* GRILLE_H_ */
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 /** Insérer une valeur dans la grille */ void Grille::inserer(int ligne, int col, const int &valeur) { this->matrice_[ligne][col] = valeur; qDebug("-------------------------------"); for(int i = 0; i < matrice_.size(); i++) { QVector<int> ligne = matrice_.value(i); QVectorIterator<int> it(ligne); int col = 0; QString l; while(it.hasNext()) { int val = it.next(); l.append(QString::number(val)+" "); col++; } qDebug(l.toAscii()); } qDebug("-------------------------------"); }
Et voilà ce que me donne la console. J'insère un 3 dans la deuxième ligne, l'affichage prend en compte le changement. Mais lors d'une autre insertion, le 3 disparaît. Pourtant il me semble bien modifier le bon QVector.
-------------------------------
-1 -1 6 7 -1 -1 -1 -1 3
5 [3] -1 -1 4 -1 -1 -1 -1
1 2 -1 -1 -1 -1 7 -1 6
-1 1 -1 -1 -1 -1 5 6 -1
4 -1 2 -1 5 1 -1 8 -1
-1 5 7 -1 -1 -1 2 -1 -1
-1 -1 -1 3 9 6 -1 -1 5
7 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 2 -1 -1 -1 4 1
-------------------------------
-------------------------------
1 -1 6 7 -1 -1 -1 -1 3
5 [-1]! -1 -1 4 -1 -1 -1 -1
1 2 -1 -1 -1 -1 7 -1 6
-1 1 -1 -1 -1 -1 5 6 -1
4 -1 2 -1 5 1 -1 8 -1
-1 5 7 -1 -1 -1 2 -1 -1
-1 -1 -1 3 9 6 -1 -1 5
7 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 2 -1 -1 -1 4 1
-------------------------------
merci d'avance.
Partager