Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
Projet_sudoku
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jolibois Simon
Projet_sudoku
Commits
27540686
Commit
27540686
authored
4 years ago
by
Jolibois Simon
Browse files
Options
Downloads
Patches
Plain Diff
nettoyage du code et ajout de commentaires
parent
ad074ba5
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
Carre.qml
+19
-12
19 additions, 12 deletions
Carre.qml
debug/grille.o
+0
-0
0 additions, 0 deletions
debug/grille.o
debug/sudoku.exe
+0
-0
0 additions, 0 deletions
debug/sudoku.exe
grille.cpp
+35
-35
35 additions, 35 deletions
grille.cpp
with
54 additions
and
47 deletions
Carre.qml
+
19
−
12
View file @
27540686
...
...
@@ -5,25 +5,28 @@ import QtQuick.Controls 1.4
Item
{
function
envoyer_valeur
(
app
){
var
i
;
var
j
;
for
(
i
=
0
;
i
<
9
;
i
++
){
for
(
j
=
0
;
j
<
9
;
j
++
){
/* appelle changer_valeur et met à jour les valeurs et couleurs de la grille*/
// appel de la fonction changer_valeur
for
(
var
i
=
0
;
i
<
9
;
i
++
){
for
(
var
j
=
0
;
j
<
9
;
j
++
){
var
carr
=
repeater
.
itemAt
(
i
).
rep
.
itemAt
(
j
).
input
if
(
app
===
carr
){
vueObjetCpt
.
changer_valeur
(
app
.
text
,
i
,
j
);
}
}
}
// signal de retour avec les valeurs
var
values
=
vueObjetCpt
.
values
;
var
l
var
c
for
(
l
=
0
;
l
<
9
;
l
++
){
for
(
c
=
0
;
c
<
9
;
c
++
){
for
(
var
l
=
0
;
l
<
9
;
l
++
){
for
(
var
c
=
0
;
c
<
9
;
c
++
){
var
v
=
repeater
.
itemAt
(
l
).
rep
.
itemAt
(
c
).
input
v
.
text
=
values
[
l
][
c
];
}
}
// signal de retour avec les couleurs
var
colors
=
vueObjetCpt
.
colors
;
for
(
i
=
0
;
i
<
9
;
i
++
){
for
(
j
=
0
;
j
<
9
;
j
++
){
...
...
@@ -34,16 +37,19 @@ Item {
}
function
changer_couleur
(
app
,
focus
){
var
i
;
var
j
;
for
(
i
=
0
;
i
<
9
;
i
++
){
for
(
j
=
0
;
j
<
9
;
j
++
){
/* appelle la fonction colorer_voisins et met à jour les couleurs de la grille*/
// appel de la fonction colorer_voisins
for
(
var
i
=
0
;
i
<
9
;
i
++
){
for
(
var
j
=
0
;
j
<
9
;
j
++
){
var
carr
=
repeater
.
itemAt
(
i
).
rep
.
itemAt
(
j
).
input
if
(
app
===
carr
){
vueObjetCpt
.
colorer_voisins
(
i
,
j
,
focus
);
}
}
}
// signal de retour avec les couleurs
var
colors
=
vueObjetCpt
.
colors
;
for
(
i
=
0
;
i
<
9
;
i
++
){
for
(
j
=
0
;
j
<
9
;
j
++
){
...
...
@@ -52,6 +58,7 @@ Item {
}
}
}
property
alias
rep
:
repeater1
Grid
{
...
...
This diff is collapsed.
Click to expand it.
debug/grille.o
+
0
−
0
View file @
27540686
No preview for this file type
This diff is collapsed.
Click to expand it.
debug/sudoku.exe
+
0
−
0
View file @
27540686
No preview for this file type
This diff is collapsed.
Click to expand it.
grille.cpp
+
35
−
35
View file @
27540686
...
...
@@ -122,15 +122,6 @@ void Grille::verif_matrice(){
emit
verifClicked
();
}
void
Grille
::
changer_valeur_bouton
(
int
i
){
/* fait la même chose que changer_valeur mais à l'aide des boutons de la fenêtre graphique */
changer_valeur
(
i
,
caseselected
[
0
],
caseselected
[
1
]);
// signal à la partie QML
emit
chiffreActifChanged
();
}
void
Grille
::
grilleToValeurs
(){
/*conversion d'un array nommé grille de taille 9x9 de string à valeurs qui est une QList<QList<QString>> */
...
...
@@ -177,20 +168,20 @@ void Grille::colorer_voisins( int Carre,int Case,bool focus){
caseselected
[
0
]
=
Carre
;
caseselected
[
1
]
=
Case
;
// reset des couleurs de toute la grille en blanc
if
(
focus
){
// reset les couleurs de toute la grille au blanc
for
(
int
k
=
0
;
k
<
9
;
k
++
){
for
(
int
j
=
0
;
j
<
9
;
j
++
){
colors
[
k
][
j
]
=
"white"
;
}
}
//
re
colore
l
es cases du carré selectionné
// color
iag
e
d
es cases du carré selectionné
for
(
int
k
=
0
;
k
<
9
;
k
++
){
colors
[
Carre
][
k
]
=
"#eaeaea"
;
}
//color
er les
ligne
s
horizontale
s
//color
iage de la
ligne horizontale
switch
(
Carre
/
3
){
case
0
:
coloriage_ligne
(
0
,
Case
/
3
);
...
...
@@ -202,7 +193,8 @@ void Grille::colorer_voisins( int Carre,int Case,bool focus){
coloriage_ligne
(
6
,
Case
/
3
);
break
;
}
// colorer les lignes verticales
// coloriage de la ligne verticale
switch
(
Carre
%
3
){
case
0
:
coloriage_colonne
(
0
,
Case
%
3
);
...
...
@@ -214,30 +206,33 @@ void Grille::colorer_voisins( int Carre,int Case,bool focus){
coloriage_colonne
(
2
,
Case
%
3
);
break
;
}
// coloriage des cases avec le même chiffre -- ne fonctionne pour l'instant
if
(
grille
[
3
*
(
Carre
/
3
)
+
(
Case
/
3
)][
3
*
(
Carre
%
3
)
+
(
Case
%
3
)]
!=
""
&&
grille
[
3
*
(
Carre
/
3
)
+
(
Case
/
3
)][
3
*
(
Carre
%
3
)
+
(
Case
%
3
)]
!=
"0"
){
for
(
int
i
=
0
;
i
<
9
;
i
++
){
for
(
int
j
=
0
;
j
<
9
;
j
++
){
if
(
grille
[
3
*
(
i
/
3
)
+
(
j
/
3
)][
3
*
(
i
%
3
)
+
(
j
%
3
)]
==
grille
[
3
*
(
Carre
/
3
)
+
(
Case
/
3
)][
3
*
(
Carre
%
3
)
+
(
Case
%
3
)]){
// coloriage des cases de la grille avec le même chiffre que celui sélectionné quand c'est possible
if
(
grille
[
3
*
(
Carre
/
3
)
+
(
Case
/
3
)][
3
*
(
Carre
%
3
)
+
(
Case
%
3
)]
!=
""
&&
grille
[
3
*
(
Carre
/
3
)
+
(
Case
/
3
)][
3
*
(
Carre
%
3
)
+
(
Case
%
3
)]
!=
"0"
)
for
(
int
i
=
0
;
i
<
9
;
i
++
)
for
(
int
j
=
0
;
j
<
9
;
j
++
)
if
(
grille
[
3
*
(
i
/
3
)
+
(
j
/
3
)][
3
*
(
i
%
3
)
+
(
j
%
3
)]
==
grille
[
3
*
(
Carre
/
3
)
+
(
Case
/
3
)][
3
*
(
Carre
%
3
)
+
(
Case
%
3
)])
colors
[
i
][
j
]
=
"#9eaac8"
;
}
}
}
}
// affichage de la grille actualisée dans la fenêtre de debug
Print
();
// signal à la partie QML
emit
focusChanged
();
}
}
void
Grille
::
changer_valeur
(
int
valeur
,
int
Carre
,
int
Case
){
/* modification de la valeur de la case grille[Carre][Case] */
//initialisation des valeurs
string
value
=
to_string
(
valeur
);
if
(
value
==
"0"
)
{
if
(
value
==
"0"
)
value
=
""
;
}
int
ligne
,
colonne
;
bool
possible
=
true
;
// passage d'un système de coordonnée [Carre][Case] à un autre [ligne][colonne]
switch
(
Carre
){
case
0
:
colonne
=
Case
%
3
;
...
...
@@ -277,22 +272,19 @@ void Grille::changer_valeur(int valeur, int Carre,int Case){
break
;
}
// on teste si les règles sont respectées
bool
possible
=
true
;
// test sur le carré
// evaluation du respect des règles dans le carré et coloration des cases qui empêchent l'écriture si c'est le cas
if
(
value
!=
""
){
for
(
int
i
=
0
;
i
<
3
;
i
++
){
for
(
int
j
=
0
;
j
<
3
;
j
++
){
if
(
grille
[
3
*
(
ligne
/
3
)
+
i
][
3
*
(
colonne
/
3
)
+
j
]
==
value
){
possible
=
false
;
cout
<<
3
*
((
3
*
(
ligne
/
3
)
+
i
)
/
3
)
+
(
3
*
(
colonne
/
3
)
+
j
)
/
3
<<
3
*
((
3
*
(
ligne
/
3
)
+
i
)
%
3
)
+
(
3
*
(
colonne
/
3
)
+
j
)
%
3
<<
endl
;
colors
[
3
*
((
3
*
(
ligne
/
3
)
+
i
)
/
3
)
+
(
3
*
(
colonne
/
3
)
+
j
)
/
3
][
3
*
((
3
*
(
ligne
/
3
)
+
i
)
%
3
)
+
(
3
*
(
colonne
/
3
)
+
j
)
%
3
]
=
"#d14545"
;
break
;
}
}
}
// test sur les lignes et colonnes
// evaluation sur les lignes et colonnes et coloration des cases qui empêchent l'écriture si c'est le cas
for
(
int
j
=
0
;
j
<
9
;
j
++
){
if
(
grille
[
j
][
colonne
]
==
value
&&
j
!=
ligne
){
possible
=
false
;
...
...
@@ -305,20 +297,28 @@ void Grille::changer_valeur(int valeur, int Carre,int Case){
}
}
// remplissage de la case si c'est possible
if
(
possible
)
grille
[
ligne
][
colonne
]
=
value
;
else
cout
<<
"impossible de modifier la valeur"
<<
endl
;
// update de valeurs
grilleToValeurs
();
// affichage de la grille
// affichage de la grille
mise à jour dans la fenêtre de debug
Print
();
}
void
Grille
::
changer_valeur_bouton
(
int
i
){
/* fait la même chose que changer_valeur mais à l'aide des boutons de la fenêtre graphique */
changer_valeur
(
i
,
caseselected
[
0
],
caseselected
[
1
]);
// signal à la partie QML
emit
chiffreActifChanged
();
}
void
Grille
::
Print
(){
/* affichage de la grille actuelle dans la fenêtre de debug*/
for
(
int
i
=
0
;
i
<
9
;
i
++
)
{
cout
<<
endl
;
for
(
int
j
=
0
;
j
<
9
;
j
++
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment