diff --git a/WEB/src/CSS/Presentation.css b/WEB/src/CSS/Presentation.css index de6580f8..3c70164f 100644 --- a/WEB/src/CSS/Presentation.css +++ b/WEB/src/CSS/Presentation.css @@ -12,6 +12,9 @@ html{ body{ font-family: "Orbitron", sans-serif; height: 95%; + display: flex; + flex-direction: row; + justify-content: center; } .Presentation{ diff --git a/WEB/src/CSS/enigme.css b/WEB/src/CSS/enigme.css index 691585b2..36dec3fb 100644 --- a/WEB/src/CSS/enigme.css +++ b/WEB/src/CSS/enigme.css @@ -43,14 +43,12 @@ input:focus, textarea:focus, select:focus { /* Main CSS */ html{ scroll-behavior: smooth; - background-image: url(../../assets/img/BackgroundPalindrome.jpg); height: 100vh; background-position: center; background-repeat: no-repeat; background-size: cover; } - body{ display: flex; font-family: "Orbitron", sans-serif; diff --git a/WEB/src/JS/cesarDecrypt.js b/WEB/src/JS/cesarDecrypt.js new file mode 100644 index 00000000..ec4b11c4 --- /dev/null +++ b/WEB/src/JS/cesarDecrypt.js @@ -0,0 +1,40 @@ +//~ Function that test the user code + +async function submit(){ + var test = editor.getValue()+`\n +import random as r +def DecryptVerif(text, key): + result = "" + for i in range(len(text)): + char = text[i] + if(char==" "): + result+=" " + elif (char.isupper()): + result += chr((ord(char) - key-65) % 26 + 65) + else: + result += chr((ord(char) - key - 97) % 26 + 97) + return result + +def testDecrypte(x): + if(Decrypt("Hello world",2)!="Jgnnq yqtnf"): + return False + if(Decrypt("Scripted",9)!="Blarycnm"): + return False + for i in range(x): + l="" + cle=r.randint(1,26) + for i in range(r.randint(1,10)): + l+=chr(r.randint(97,122)) + if(Decrypt(l,cle)!=DecryptVerif(l,cle)): + return False + return True + +print(testDecrypte(5)) + `; + exec("print ('True')", "code"); + exec(test, "solution"); + result.innerHTML = "Test en cours..."; + await new Promise(r => setTimeout(r, 1500)); + check(); + } + \ No newline at end of file diff --git a/WEB/src/JS/cesarEncrypt.js b/WEB/src/JS/cesarEncrypt.js new file mode 100644 index 00000000..d6e15a2a --- /dev/null +++ b/WEB/src/JS/cesarEncrypt.js @@ -0,0 +1,40 @@ +//~ Function that test the user code + +async function submit(){ + var test = editor.getValue()+`\n +import random as r +def EncryptVerif(text, key): + result = "" + for i in range(len(text)): + char = text[i] + if(char==" "): + result+=" " + elif (char.isupper()): + result += chr((ord(char) + key-65) % 26 + 65) + else: + result += chr((ord(char) + key - 97) % 26 + 97) + return result + +def testEncrypte(x): + if(Encrypt("Hello world",2)!="Jgnnq yqtnf"): + return False + if(Encrypt("Scripted",9)!="Blarycnm"): + return False + for i in range(x): + l="" + cle=r.randint(1,26) + for i in range(r.randint(1,10)): + l+=chr(r.randint(97,122)) + if(Encrypt(l,cle)!=EncryptVerif(l,cle)): + return False + return True + +print(testEncrypte(5)) + `; + exec("print ('True')", "code"); + exec(test, "solution"); + result.innerHTML = "Test en cours..."; + await new Promise(r => setTimeout(r, 1500)); + check(); + } + \ No newline at end of file diff --git a/WEB/src/JS/chouette.js b/WEB/src/JS/chouette.js new file mode 100644 index 00000000..c347ea58 --- /dev/null +++ b/WEB/src/JS/chouette.js @@ -0,0 +1,32 @@ +//~ Function that test the user code + +async function submit(){ + var test = editor.getValue()+`\n +import random as r +def chouetteVerif(valeur): + res=list() + for i in range(1, 7): + for j in range(i, 7): + for k in range(j, 7): + if (i+j+k) == valeur: + res.append([i, j, k]) + return res + +def test_chouette(n): + listTest=[] + for i in range(0,n): + listTest.append(r.randint(3,18)) + for i in listTest: + if(chouette(i)!=chouetteVerif(i)): + return False + return True + +print(test_chouette(5)) + `; + exec("print ('True')", "code"); + exec(test, "solution"); + result.innerHTML = "Test en cours..."; + await new Promise(r => setTimeout(r, 1500)); + check(); +} + diff --git a/WEB/src/JS/chuckNorris.js b/WEB/src/JS/chuckNorris.js index e750b041..16e24af4 100644 --- a/WEB/src/JS/chuckNorris.js +++ b/WEB/src/JS/chuckNorris.js @@ -51,28 +51,8 @@ print(testChuckNorris(5)) `; exec("print ('True')", "code"); exec(test, "solution"); + result.innerHTML = "Test en cours..."; await new Promise(r => setTimeout(r, 1500)); check(); } - -function aide(){ - if(document.getElementById("textAide").textContent == ""){ - document.getElementById("textAide").textContent = "Bonne chance :)"; - } - else{ - document.getElementById("textAide").textContent = ""; - } -} - -function rappel(){ - if(document.getElementById("textRappel").textContent == ""){ - document.getElementById("textRappel").textContent = ` - 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 - ` -} - else{ - document.getElementById("textRappel").textContent = ""; - } -} diff --git a/WEB/src/JS/palindrome.js b/WEB/src/JS/palindrome.js index b2b92918..acdd8dc1 100644 --- a/WEB/src/JS/palindrome.js +++ b/WEB/src/JS/palindrome.js @@ -33,22 +33,4 @@ print(testPalindrome(5)) await new Promise(r => setTimeout(r, 1500)); check(); } - -function aide(){ - if(document.getElementById("textAide").textContent == ""){ - document.getElementById("textAide").textContent = "En python l’instruction [::-1] permet d’inverse une chaine de caractère. Par exemple print(\"ae\"[::-1]) affiche : ea."; - } - else{ - document.getElementById("textAide").textContent = ""; - } -} - -function rappel(){ - if(document.getElementById("textRappel").textContent == ""){ - document.getElementById("textRappel").textContent = "Un palindrome est un nombre qui peut se lire dans les deux sens. Par exemple 111."; - } - else{ - document.getElementById("textRappel").textContent = ""; - } -} diff --git a/WEB/src/pages/Enigme/CesarDecrypt.html b/WEB/src/pages/Enigme/CesarDecrypt.html new file mode 100644 index 00000000..fd6f3f44 --- /dev/null +++ b/WEB/src/pages/Enigme/CesarDecrypt.html @@ -0,0 +1,103 @@ + + +
+ + + ++ Écrire une fonction Decrypt qui prend en argument un essage crypté et une clé et qui retourne le message decrypté avec le code César.(les espace ne seront pas encodé.) +
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.
+
Entrée : Sortie :
+[cyber,3] fbehu
+ La fonction ord(char) de python permet de retourner l’Unicode(standard d’encodage de caractères) d'un caractère.
+
Par exemple, ord('a') retourné '97' et ord('b’) retourne 98.
+
+ É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é.) +
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.
+
Entrée : Sortie :
+[fbehu,3] cyber
+ La fonction ord(char) de python permet de retourner l’Unicode(standard d’encodage de caractères) d'un caractère.
+
Par exemple, ord('a') retourné '97' et ord('b’) retourne 98.
+
+ É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. +
On cherche à savoir si la somme de 3 dés (trois variables allant de 1 à 6) est égale à une valeur donné.
+Pour cela on peut utiliser la structure suivante on d1 ( le premier dé) va varier de 1 à 6.
. +for d1 in range(1, 7):
for d2 in range (1, 7):
#Faire...
- Écrire une fonction estPalindrome qui prend en argument un entier et qui renvoie True si c’est un palindrome et False sinon. + Coder un fonction binaire2unaire qui prend en argument un nombre binaire et le code via le codage Chucknorris.
Un palindrome est un nombre qui peut se lire dans les deux sens. Par exemple 111.
+ 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
+
Entrée : Sortie :
-[1,0,1] True
-[1,1,9,1] False
10000111 0 0 00 0000 0 000
En python l’instruction [::-1] permet d’inverse une chaine de caractère. Par exemple print("ae"[::-1]) affiche : ea.
+?
+ +