From 1446f9e113ab22863b9be17fe1b7e9181efd5f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9=20Garnier?= Date: Sun, 11 Dec 2022 14:48:08 +0100 Subject: [PATCH 01/49] Incoporation de tout les enigmes solo --- WEB/Config/Config.php | 5 +- WEB/Controller/UserController.php | 6 + WEB/Model/UserModel.php | 23 +- WEB/Model/scripted.db | Bin 53248 -> 0 bytes WEB/View/src/JS/String.js | 1 - WEB/View/src/JS/TrianglePascal.js | 4 +- WEB/View/src/pages/Enigme/CesarDecrypt.html | 9 +- WEB/View/src/pages/Enigme/CesarEncrypt.html | 9 +- WEB/View/src/pages/Enigme/Chouette.html | 10 +- WEB/View/src/pages/Enigme/ChuckNorris.html | 10 +- .../src/pages/Enigme/Enigmebootstrap.html | 94 ------ WEB/View/src/pages/Enigme/Hanoi.html | 272 +++++++++++------ WEB/View/src/pages/Enigme/TrianglePascal.html | 279 ++++++++++++------ WEB/View/src/pages/Enigme/palindrome.html | 5 +- WEB/View/src/pages/FirstTests/FirstTest1.html | 3 +- .../src/pages/FirstTests/FirstTest10.html | 25 +- WEB/View/src/pages/FirstTests/FirstTest2.html | 2 +- WEB/View/src/pages/FirstTests/FirstTest3.html | 2 +- WEB/View/src/pages/FirstTests/FirstTest4.html | 2 +- WEB/View/src/pages/FirstTests/FirstTest5.html | 2 +- WEB/View/src/pages/FirstTests/FirstTest6.html | 2 +- WEB/View/src/pages/FirstTests/FirstTest7.html | 2 +- WEB/View/src/pages/FirstTests/FirstTest8.html | 2 +- WEB/View/src/pages/FirstTests/FirstTest9.HTML | 2 +- 24 files changed, 462 insertions(+), 309 deletions(-) delete mode 100644 WEB/Model/scripted.db delete mode 100644 WEB/View/src/pages/Enigme/Enigmebootstrap.html diff --git a/WEB/Config/Config.php b/WEB/Config/Config.php index a31e1eb9..71150a38 100644 --- a/WEB/Config/Config.php +++ b/WEB/Config/Config.php @@ -14,7 +14,8 @@ $rep = __DIR__ . '/../'; // $password = 'p'; // SQULITE3 -$dsn = './Model/scripted.db'; +// $dsn = './scripted.db'; +$dsn = 'C:\\wamp64\\www\\scripted.db'; //Sel de hashage $sel = "JeSuisUnSeldeHashageEtJeSuisUniqueEtTresSecuriseEtJeSuisTresLong"; @@ -33,6 +34,8 @@ $vues['chouette'] = 'View/src/pages/Enigme/Chouette.html'; $vues['cesarEncrypt'] = 'View/src/pages/Enigme/CesarEncrypt.html'; $vues['cesarDecrypt'] = 'View/src/pages/Enigme/CesarDecrypt.html'; $vues['chuckNorris'] = 'View/src/pages/Enigme/ChuckNorris.html'; +$vues['hanoi'] = 'View/src/pages/Enigme/Hanoi.html'; +$vues['trianglePascal'] = 'View/src/pages/Enigme/TrianglePascal.html'; //Error $vues['erreur'] = 'View/src/pages/Erreur.php'; diff --git a/WEB/Controller/UserController.php b/WEB/Controller/UserController.php index aeb4e7f0..8cda2d1c 100644 --- a/WEB/Controller/UserController.php +++ b/WEB/Controller/UserController.php @@ -39,6 +39,12 @@ class UserController case "goToChuckNorris" : $model->goToChuckNorris(); break; + case "goToHanoi" : + $model->goToHanoi(); + break; + case "goToTrianglePascal": + $model->goToTrianglePascal(); + break; case "goToQueue": $model->goToQueue(); break; diff --git a/WEB/Model/UserModel.php b/WEB/Model/UserModel.php index f28c8df9..8068c1bb 100644 --- a/WEB/Model/UserModel.php +++ b/WEB/Model/UserModel.php @@ -91,6 +91,26 @@ class UserModel require($rep . $vues['erreur']); } } + public function goToHanoi() + { + global $rep, $vues, $error; + try { + require($rep . $vues['hanoi']); + } catch (Exception $e) { + $error = "404"; + require($rep . $vues['erreur']); + } + } + public function goToTrianglePascal() + { + global $rep, $vues, $error; + try { + require($rep . $vues['trianglePascal']); + } catch (Exception $e) { + $error = "404"; + require($rep . $vues['erreur']); + } + } public function goToTest() { @@ -153,7 +173,6 @@ class UserModel //trigger_event('add_to_queue',$userGroup); } -<<<<<<< HEAD public function AddUserToQueueEvent(){ $userGroup=$this->utilisateur_gateway->findUsersInQueue(); if($userGroup.count()>=4) @@ -162,8 +181,6 @@ class UserModel } } -======= ->>>>>>> 146a4b62fc5bc2340e9c08c07650a6efb799c3fb public function logout() { $_SESSION['role'] = 'visitor'; diff --git a/WEB/Model/scripted.db b/WEB/Model/scripted.db deleted file mode 100644 index 5cfd9cb783163a4b794df4276d0454110f0d1a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53248 zcmeI*-%i_B90zcl&;WtRAZ^OHKspFo5;cS*P$-(V5=}C%zshcWo(k^#w$HakBv723luLaHVFZSX5KIdl>J1E`R-jGd7 z4phAY0+ zdYU-FB>9F=C1aXYVK4cdP|693s-+ulAk6{?vLd_V+A8KYGsOy7&sL&tDskc)Yb+d! z%?<@4&&PRAR%-N(anfL~Cif)ERGsy`HppJ8-40*O_xDA{#`w!;4y>rM0V%TXJq~oB zdQnDt2Ts<{Ve^J~)`_;nouRoAqF7C;%T-d&=eEmPHXWZz+3nNLb|w^zh-0^9>y30T z?X}no+&k@%@^%PaN{+uY<;mG8*5s{HGGSgV!C@s}0F8XpkqpdnzX4ISCiAKY&Ym`K$T6aVajA*RU1@Nu1%Z|BhE_Ru84T+ zSafEw?{kylq3)%;R=@V3FETpHUwqv@54dLo8tj-4r^G3n4Y_7J&_k*dUqO*fxm3vI z*)E&ee2I;@#t!)vx^J1pZjpSUMDpd04OVDdy}`)i$9%>4fvv;JpeGhps`T3GgN`9w zdorp>EO)kN>~b;SB=K(3>C>%$_ut-*9^Ba7lc0*q26a_*Y5TAnW?5m;MLcX$KscQzcYN~$&7HrnEYY~=zrq+}d zuk6{-p7aDGxry7(NWM|*rF<&^_Pey-{(Wj+;0FYr6Mh!HV-Hv$009U<00Izz00bZa z0SG_<0^KR_DiE9=y?D@Hvov-Wa_P{%wVJ4^O?Q1VeLk5=PNoX0d4@g}tCsds z+20p4i34jrFQtkLg~k2k+0Np*Xq4Bgi>1`TX}(gdT3bEAha;@#W3?_VIo%%U$7-v` z^JVqubv{|I?AEpVwz8R6NhUT5r}B&Xj4@{>R^^pOVNQIzz9r{YPb>BM&WmJmcbgAR zxji09%8f3I+sCu7WhpW9w6apl>DtWh;X=AV=iaQ%zb&7?I#FKg=7OkK&zjH8lXZRh zye@7OLTpw8!h245FZ?O|)}2#~tRMgZ2tWV=5P$##AOHafKmY<=Bk)CFn!kPzBQP9z z$op?U^b7~4298zV-2>+j{D-?n0f|5W0uX=z1Rwwb2tWV=5P$##An*wR`}&_3{^Hmd z76?E90uX=z1Rwwb2tWV=5P$##x=0|z2S$1Kqbhpb>;I3O@Ue>$L@E$~00bZa0SG_< z0uX=z1Rwx``z{dX1KfBznNClq($mR#{QduZF9_rh0SG_<0uX=z1Rwwb2tWV=_d&q^ z{6F@e{$YUt1Rwwb2tWV=5P$##AOHafK%k2S@cw@nPcBk}00bZa0SG_<0uX=z1Rwwb z2($$7{y$0q0uX=z1Rwwb2tWV=5P$##Akh5+xc=|{IYx#MfB*y_009U<00Izz00bZa z0r&I&KXAeaSU>;*5P$##AOHafKmY;|fB*y_&=mqBeDA

- Écrire une fonction Decrypt qui prend en argument un message et une clé - et qui retourne le message décrypté avec le code César.(les espace ne seront pas encodé.) + Écrire une fonction Decrypt qui prend en argument + un message et une clé + et qui retourne le message décrypté avec le code César.(les espace ne seront pas encodé.)

Rappel

- Le code César (ou chiffre de César ) est un chiffrement par substitution, + Le code César (ou chiffre de César ) est un chiffrement par substitution,
où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l'alphabet .
Par exemple A avec une clé 2 devient C.

Exemple

-

Entrée :      Sortie :

+

Entrée :      Sortie :

'fbehu',3      cyber

- Écrire une fonction Encrypt qui prend en argument un message et une clé - et qui retourne le message crypté avec le code César.(les espace ne seront pas encodé.) + Écrire une fonction Encrypt qui prend en argument + un message et une clé + et qui retourne le message crypté avec le code César.(les espace ne seront pas encodé.)

Rappel

- Le code César (ou chiffre de César ) est un chiffrement par substitution, + Le code César (ou chiffre de César ) est un chiffrement par substitution,
où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l'alphabet .
Par exemple A avec une clé 2 devient C.

Exemple

-

Entrée :      Sortie :

+

Entrée :      Sortie :

'fbehu',3      cyber

- Écrire une fonction chouette qui, pour une valeur donnée, renvoie une liste contenant toutes les solutions de somme de 3 dés pouvant donner cette valeur. -
La valeur peut aller de 3 à 18 . + Écrire une fonction chouette qui, pour une valeur donnée, + renvoie une liste + contenant toutes les solutions de somme de 3 dés pouvant donner cette valeur. +
La valeur peut aller de 3 à 18 .
Les solutions doivent être uniques.(1,2,3) et (3,2,1) sont la même solution.

Exemple

-

Entrée : 7

-

Sortie : [[1,1,5],[1,2,4],[1,3,3],[2,2,3]]

+

Entrée : 7

+

Sortie : [[1,1,5],[1,2,4],[1,3,3],[2,2,3]]

Rappel

- Dans le codage Chuck Norris, le '0' est codé '00' et le '1' est codé '0'. Puis un espace, puis ensuite autant de '0' que le message contient de '0' ou '1' successifs. + Dans le codage Chuck Norris, le '0' est codé '00' et le '1' est codé '0'. Puis un espace, puis ensuite autant de '0' que le message contient de '0' ou '1' successifs.
Par exemple, la suite "10000111" sera traduite de la façon suivante : "0 0 00 0000 0 000

Exemple

-

Entrée :      Sortie :

+

Entrée :      Sortie :

10000111      0 0 00 0000 0 000

diff --git a/WEB/View/src/pages/Enigme/Enigmebootstrap.html b/WEB/View/src/pages/Enigme/Enigmebootstrap.html deleted file mode 100644 index 2728cdeb..00000000 --- a/WEB/View/src/pages/Enigme/Enigmebootstrap.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - Bootstrap Site - - - - - - - - - -
-
-
-
- -
-

- Palindrome -


-
-
-
-
-

Consigne


-

Écrire une fonction estPalindrome qui prend en argument un entier et qui renvoie True si c’est un palindrome et False sinon.



-
-
-

Rappel


-

Un palindrome est un nombre qui peut se lire dans les deux sens. Par exemple 111.



-
-
-

Exemple


-

Entrée :      Sortie :

-

[1,0,1]        True

-

[1,1,9,1]       False



-
-
-

Aide


-

En python l’instruction [::-1] permet d’inverse une chaine de caractère. Par exemple print("ae"[::-1]) affiche : ea.

-
-
-
-
-
def estPalindrome(var): - return var == var[::-1] -print(estPalindrome("abba")) -
-
-
-
- -
- -
-
-
- - - - - - - \ No newline at end of file diff --git a/WEB/View/src/pages/Enigme/Hanoi.html b/WEB/View/src/pages/Enigme/Hanoi.html index cecef62c..f64108d8 100644 --- a/WEB/View/src/pages/Enigme/Hanoi.html +++ b/WEB/View/src/pages/Enigme/Hanoi.html @@ -1,95 +1,197 @@ - - - - - Palindrome - - - - - - -
-
-
- home -
-
-

- T - our -  H - anoi -

-

-
-

Consigne


-

- Faire une fonction permettant de résoudre le problème des tours d’hanoi peu importe le nombre d'entrées dans la fonction. -


-

Rappel


-

Le problème des tours de hanoi est le suivant, on souhaite déplacer un certain nombre de disque de taille différente et ils sont et doivent restés empilés de telle sorte qu’aucun disque d’une certaine taille n soit placé en dessous d’un disque de taille plus grande en sachant qu’il n’y a que 3 piles. -


-

Exemple


-

Entrée :3,"A","B","C"

-

Sortie : [['A','C'],['A','B'],['C','B'],['A','C'],['B','A'],['B','C'],['A','C']]

-

Aide


-

Une fonction récursive est une fonction qui fait appelle à elle même

-
-
def hanoi(nb_disks,start, middle, end): - l=[] - hanoi_rec(l,nb_disks,start, middle, end) - return l - -def hanoi_rec(l,nb_disks, start, middle, end): - if nb_disks == 1: - return l.append([start,end]) - else: - hanoi_rec(l,nb_disks - 1, start, end, middle) - l.append([start,end]) - hanoi_rec(l,nb_disks - 1, middle, start, end)
-
- -
-
- - Run - - - Submit - + + + + Hanoi + + + + + + + +
+ +
+
+ home +
+
+ + + +
+ +
+

+ Les tours d'Hanoi +

+

+ Écrire une fonction hanoi permettant de résoudre le problème des tours d’hanoi + peu importe le nombre d'entrées dans la fonction.
+ Cette fonction devra prend en paramètre le nombre de disques, + le nom de la tour de départ, + le nom la tour d'arrivée et + le nom la tour intermédiaire.
+ Elle devra retoure une liste contenant les déplacements à effectuer (cf exemple ci-dessous). +

+

Rappel

+

+ Le problème des tours de hanoi est le suivant, on souhaite déplacer un certain nombre de disque de taille différente + et ils sont et doivent restés empilés de telle sorte + qu’aucun disque d’une certaine taille n soit placé en dessous d’un disque de taille plus grande + en sachant qu’il n’y a que 3 piles. +

+

Exemple

+

Entrée :3,"A","B","C"

+

Sortie : [['A','C'],['A','B'],['C','B'],['A','C'],['B','A'],['B','C'],['A','C']]

+ + +
+ + + +
+
def hanoi(nb_disks,start, middle, end):
-
+
+ -