summaryrefslogtreecommitdiff
path: root/static/outilspage.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/outilspage.js')
-rw-r--r--static/outilspage.js153
1 files changed, 153 insertions, 0 deletions
diff --git a/static/outilspage.js b/static/outilspage.js
new file mode 100644
index 0000000..b8db8b3
--- /dev/null
+++ b/static/outilspage.js
@@ -0,0 +1,153 @@
1/* Calcul des scores */
2var points_par_case = 1 ;
3var points_par_ligne = 10 ;
4
5
6
7// Couleurs des cases
8var couleur_base = "rgb(238, 238, 238)" ;
9var couleur_valide = 'rgb(255, 136, 136)' ;
10
11
12// Valide la case et la colore en rouge
13function validecase(elem) {
14 elem.style.backgroundColor = couleur_valide ;
15
16 detectelignes() ;
17}
18
19// efface la grille
20function effacegrille() {
21 var table=document.getElementById("grille") ;
22 var listetd = table.getElementsByTagName("td") ;
23 for (var i=0; i< listetd.length; i++){
24 listetd[i].style.backgroundColor = couleur_base ;
25 }
26 metscore(0) ;
27}
28
29// mettre à jour le score si on veut
30function metscore(score) {
31 document.getElementById("score").innerHTML = score ;
32}
33
34// Compte les lignes, colonnes et diagonales de la grille et met à jour le score
35function detectelignes(elem) {
36 var table=document.getElementById("grille") ;
37 var listelignes = table.getElementsByTagName("tr") ;
38 var nblignes = listelignes.length ;
39 var nbcolonnes = listelignes[0].children.length ;
40 var i, j ;
41
42 // lignes
43 var nb_lignes_completes = 0 ;
44 var remplie ;
45 for(i=0; i<nblignes; i++) {
46 remplie = true ;
47 for(j=0; j<nbcolonnes; j++) {
48 //alert(j) ;
49 //alert(listelignes[i].children[j].style.backgroundColor) ;
50 if(listelignes[i].children[j].style.backgroundColor != couleur_valide) {
51 // c'est pas une ligne, dommage
52 remplie = false ;
53 //alert("la ligne "+i+"n'est pas remplie, vu à la colonne "+j) ;
54 break
55 }
56 }
57 if(remplie) {
58 nb_lignes_completes+=1 ;
59 }
60 }
61
62 // Colonnes
63 var nb_colonnes_completes = 0 ;
64 for(j=0; j<nbcolonnes; j++) {
65 remplie = true ;
66 for (i=0; i<nblignes; i++) {
67 if(listelignes[i].children[j].style.backgroundColor != couleur_valide) {
68 // c'est pas une colonne, dommage
69 remplie = false ;
70 break
71 }
72 }
73 if (remplie) {
74 nb_colonnes_completes+=1 ;
75 }
76 }
77
78 // Diagonales.
79 var nb_diagonales_1 = 0 ;
80 var nb_diagonales_2 = 0 ;
81 if(nblignes <= nbcolonnes) {
82 // Les diagonales se comptent horizontalement : "\\\" et "///"
83 for(i=0; i<nbcolonnes - nblignes +1; i++) {
84 // diagonales "\"
85 remplie=true ;
86 for(j=0; j<nblignes; j++) {
87 if(listelignes[j].children[i+j].style.backgroundColor != couleur_valide) {
88 remplie = false
89 break
90 }
91 }
92 if (remplie) {
93 nb_diagonales_1+=1
94 }
95
96 // diagonales "/"
97 remplie=true ;
98 for(j=0; j<nblignes; j++) {
99 if(listelignes[j].children[nbcolonnes-i-j-1].style.backgroundColor != couleur_valide) {
100 remplie = false
101 break
102 }
103 }
104 if (remplie) {
105 nb_diagonales_2+=1
106 }
107 }
108
109 } else { // les diagonales vont se compter "verticalement"
110 for(i=0; i<nblignes - nbcolonnes +1; i++) {
111 // diagonales "\"
112 remplie=true ;
113 for(j=0; j<nbcolonnes; j++) {
114 if(listelignes[i+j].children[j].style.backgroundColor != couleur_valide) {
115 remplie = false
116 break
117 }
118 }
119 if (remplie) {
120 nb_diagonales_1+=1
121 }
122
123 // diagonales "/"
124 remplie=true ;
125 for(j=0; j<nbcolonnes; j++) {
126 if(listelignes[nblignes -i-j-1].children[j].style.backgroundColor != couleur_valide) {
127 remplie = false
128 break
129 }
130 }
131 if (remplie) {
132 nb_diagonales_2+=1
133 }
134 }
135
136
137 }
138 // Compter les cases utilisées
139 var nbcases = 0 ;
140 for(i=0; i<nblignes; i++) {
141 for(j=0; j<nbcolonnes; j++) {
142 if (listelignes[i].children[j].style.backgroundColor == couleur_valide) {
143 nbcases+=1
144 }
145 }
146
147 }
148
149
150 // Mettre le score à jour
151 score = (nb_lignes_completes + nb_colonnes_completes + nb_diagonales_1 + nb_diagonales_2) *points_par_ligne + nbcases ;
152 metscore(score) ;
153}