Skip to content
Snippets Groups Projects
Commit 27540686 authored by Jolibois Simon's avatar Jolibois Simon
Browse files

nettoyage du code et ajout de commentaires

parent ad074ba5
Branches
No related tags found
No related merge requests found
......@@ -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{
......
No preview for this file type
No preview for this file type
......@@ -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";
}
}
// recolore les cases du carré selectionné
// coloriage des cases du carré selectionné
for(int k =0;k<9;k++){
colors[Carre][k]="#eaeaea";
}
//colorer les lignes horizontales
//coloriage 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++)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment