|
|
INSERT INTO Utilisateur VALUES('admin@gmail.com','Admin','$2y$10$0uRkVGPIop.lWuF.QYXwJe8dTXPULbOadgZ49JgdFlq2Ywi3QHZHO',1);;
|
|
|
INSERT INTO Utilisateur VALUES('no@gmail.com','Noé','$2y$10$mZoWHkT./GEqnXnKUXrO8e8NTl7gE5QybjU/9mwty1M7KZDTAFYPi',0);
|
|
|
INSERT INTO Utilisateur VALUES('na@gmail.com','Nathan','$2y$10$G9eR4c36K9Sev5MYWsBfOOU24KsE2MgH.DvA7yghYC1wXo/gxxug2',0);
|
|
|
INSERT INTO Utilisateur VALUES('jo@gmail.com','Johan','$2y$10$hFlnpJeVVHwiwA2M6RZlJO15R6fbnYr85lvzgCcbk25KTXi/jBta6',0);
|
|
|
INSERT INTO Utilisateur VALUES('pascal.lafourcade@uca.fr','Pascal','$2y$10$dtyXN7Lwv0GFhP6TaMHYq.n2M02RZXpnKtpCd72HdxhE93YGxrvB6',0);
|
|
|
|
|
|
INSERT INTO Enigme VALUES(3,'CesarEncrypt','Écrire une fonction <b style="color : violet">Encrypt</b> qui prend en argument un <b style="color:#44fff6;">message</b> et une <b style="color:#44fff6;">clé</b> et qui retourne le <b style="color: yellow;"> message crypté</b> avec le code <b>César</b>.(les espace ne seront pas encodé.)','Alors, la fonction ord(char) de python permet de retourner l''Unicode (standard d’encodage de caractères) d''un caractère.<br/>Par exemple, ord(''a'') retourne ''97'' et ord(''b'')) retourne ''98''.','Le code <b>César</b> (ou chiffre de César ) est un chiffrement par substitution,<br>où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l''alphabet .<br>Par exemple A avec une clé 2 devient C.','<b>Entrée</b> : <b>Sortie</b> :<br>''cyber'',3 fbehu',replace(replace('def EncryptVerif(text, key):\r\n result = ""\r\n for i in range(len(text)):\r\n char = text[i]\r\n if(char==" "):\r\n result+=" "\r\n elif (char.isupper()):\r\n result += chr((ord(char) + key-65) % 26 + 65)\r\n else:\r\n result += chr((ord(char) + key - 97) % 26 + 97)\r\n return result','\r',char(13)),'\n',char(10)),replace(replace('Import random as r\r\ndef testEncrypte(x):\r\n Encrypt("",1)\r\n if(Encrypt("Hello world",2)!="Jgnnq yqtnf"):\r\n return False\r\n if(Encrypt("Scripted",9)!="Blarycnm"):\r\n return False\r\n for i in range(x):\r\n l=""\r\n cle=r.randint(1,26)\r\n for i in range(r.randint(1,10)):\r\n l+=chr(r.randint(97,122))\r\n if(Encrypt(l,cle)!=EncryptVerif(l,cle)):\r\n return False\r\n return True\r\n \r\nprint(testEncrypte(5))','\r',char(13)),'\n',char(10)),2,0,0,'def Encrypt(text, key):');
|
|
|
INSERT INTO Enigme VALUES(4,'Chouette','Écrire une fonction <b style="color: violet;">chouette</b> qui, pour une <b style="color: #44fff6;">valeur</b> donnée, renvoie une <b style="color:yellow">liste</b> contenant toutes les combinaisons possible avec 3 dés pouvant donner cette <b style="color: #44fff6;">valeur</b>. </br>La <b style="color:#44fff6;">valeur</b> peut aller de 3 à 18. </br>Les solutions doivent être uniques.(1,2,3) et (3,2,1) sont la même solution.',replace(replace('On cherche à savoir si la somme de 3 dés (trois variables allant de 1 à 6) est égale à une valeur donnée.\r\n<br /> On peut donc faire une boucle imbriquée pour tester toutes les combinaisons possibles. Si la somme est égale à la valeur donnée, on l''ajoute à la liste.\r\n<br /> Pour éviter les doublons, on peut trier les valeurs avant de l''ajouter à la liste.\r\n\r\n<br><code style="font-size: 18px"> for d1 in range(1, 7):<br> for d2 in range (1, 7):<br> #Faire...</code>','\r',char(13)),'\n',char(10)),'Il n''y a pas de rappel pour cette énigme.','<b>Entrée</b> : 7</p><p><b>Sortie</b> : [[1,1,5],[1,2,4],[1,3,3],[2,2,3]]',replace(replace('def chouetteVerif(valeur): \r\n res=list() \r\n for i in range(1, 7): \r\n for j in range(i, 7): \r\n for k in range(j, 7): \r\n if (i+j+k) == valeur: \r\n
|
|
|
res.append([i, j, k]) \r\n return res','\r',char(13)),'\n',char(10)),replace(replace('import random as r\r\ndef test_chouette(n):\r\n chouette(1)\r\n listTest=[]\r\n for i in range(0,n):\r\n listTest.append(r.randint(3,18))\r\n for i in listTest:\r\n listVerif=chouette(i)\r\n listUser=chouetteVerif(i)\r\n for i in listUser:\r\n if(i not in listVerif):\r\n return False\r\n for i in listVerif:\r\n if(i not in listUser):\r\n
|
|
|
return False\r\n return True\r\n\r\nprint(test_chouette(5))','\r',char(13)),'\n',char(10)),6,0,0,'def chouette(valeur):');
|
|
|
INSERT INTO Enigme VALUES(5,'Palindrome','Écrire une fonction <b style="color: violet;">estPalindrome(var)</b> qui prend en argument une <b style="color:#44fff6">chaine de caractère</b> et qui renvoie <b style="color: green;">True</b> si c’est un palindrome et <b style="color: red;">False</b> sinon.','En python l’instruction [::-1] permet d’inverse une chaine de caractère. <br /><br />print("ae"[::-1]) -> ea.','Un palindrome est une chaine de caractère dont l''ordre des lettres reste le même, qu''on les lise de gauche à droite ou de droite à gauche.','<b style="color: violet;">estPalindrome(''12321'')</b> renvoie <b style="color: green;"></b>True</b>',replace(replace('def estPalindromeVerif(var):\r\n if(var == var[::-1]):\r\n return True\r\n else:\r\n return False','\r',char(13)),'\n',char(10)),replace(replace('import random as r\r\ndef testPalindrome(x):\r\n l=[1,2,3,2,1]\r\n if(estPalindrome(l)==False):\r\n return False\r\n l=[9,5,7,7,9]\r\n if(estPalindrome(l)==True):\r\n return False\r\n l=[]\r\n for i in range(x):\r\n for j in range(r.randint(1,10)):\r\n l.append(r.randint(0,9))\r\n if(estPalindromeVerif(l)!=estPalindrome(l)):\r\n return False\r\n l=[]\r\n return True\r\n\r\nprint(testPalindrome(5))','\r',char(13)),'\n',char(10)),1,0,0,'def estPalindromge(var):');
|
|
|
INSERT INTO Enigme VALUES(10,'CesarDecrypt','Écrire une fonction <b style="color : violet">Decrypt</b> qui prend en argument un <b style="color: #44fff6;">message</b> et une <b style="color: #44fff6;">clé</b> et qui retourne le message décrypté avec le code <b>César</b>.(les espace ne seront pas encodé.)','La fonction ord(char) de python permet de retourner l''Unicode (standard d’encodage de caractères) d''un caractère.<br/> Par exemple, ord(''a'') retourne ''97'' et ord(''b'')) retourne ''98''.','Le code <b>César</b> (ou chiffre de César ) est un chiffrement par substitution, <br>où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l''alphabet .<br>Par exemple A avec une clé 2 devient C.','<b>Entrée</b> :      <b>Sortie</b> : <br>''fbehu'',3      cyber',replace(replace('def DecryptVerif(text, key):\r\n result = ""\r\n for i in range(len(text)):\r\n char = text[i]\r\n if(char==" "):\r\n result+=" "\r\n elif (char.isupper()):\r\n result += chr((ord(char) - key-65) % 26 + 65)\r\n else:\r\n result += chr((ord(char) - key - 97) % 26 + 97)\r\n return result','\r',char(13)),'\n',char(10)),replace(replace('import random as r\r\ndef testDecrypte(x):\r\n Decrypt("",1)\r\n if(Decrypt("Jgnnq yqtnf",2)!="Hello world"):\r\n return False\r\n if(Decrypt("Blarycnm",9)!="Scripted"):\r\n return False\r\n for i in range(x):\r\n l=""\r\n cle=r.randint(1,26)\r\n for i in range(r.randint(1,10)):\r\n l+=chr(r.randint(97,122))\r\n if(Decrypt(l,cle)!=DecryptVerif(l,cle)):\r\n return False\r\n return True\r\n \r\nprint(testDecrypte(5))','\r',char(13)),'\n',char(10)),4,0,0,'def Decrypt(text, key):');
|
|
|
INSERT INTO Enigme VALUES(12,'ChuckNorris','Coder un fonction <b style="color: violet;">binaire2unaire</b> qui prend en argument un <b style="color: #44fff6;">nombre binaire</b> et qui le retourne le <b style="color: yellow;">nombre</b> codé via le codage <b>Chuck Norris</b>.','En python les chaines de carractère peuvent être utilisé comme une liste.','Dans le codage <b>Chuck Norris</b>, 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.<br>Par exemple, la suite "10000111" sera traduite de la façon suivante : "0 0 00 0000 0 000','<b>Entrée</b> :      <b>Sortie</b> : <br>10000111      0 0 00 0000 0 000',replace(replace('def binaire2unitaireVerif(x):\r\n rep=0\r\n pre=x[0]\r\n unitaire=""\r\n for i in x:\r\n if(pre==i):\r\n rep+=1\r\n else:\r\n
|
|
|
if(pre=="1"):\r\n unitaire=unitaire+"0 "\r\n else:\r\n unitaire=unitaire+"00 "\r\n for j in range(rep):\r\n unitaire=unitaire+"0"\r\n unitaire=unitaire+" "\r\n rep=1\r\n pre=i\r\n if(pre=="1"):\r\n unitaire=unitaire+"0 "\r\n else:\r\n unitaire=unitaire+"00 " \r\n for i in range(rep):\r\n unitaire=unitaire+"0"\r\n return unitaire','\r',char(13)),'\n',char(10)),replace(replace('import random as r\r\ndef testChuckNorris(x):\r\n l="0000000"\r\n binaire2unitaire(l)\r\n if(binaire2unitaire(l)!="00 0000000"):\r\n return False\r\n l="1111111"\r\n if(binaire2unitaire(l)!="0 0000000"):\r\n return False\r\n l="1101001"\r\n if(binaire2unitaire(l)!="0 00 00 0 0 0 00 00 0 0"):\r\n return False\r\n l=""\r\n for i in range(x):\r\n for j in range(r.randint(1,10)):\r\n
|
|
|
l=l+str(r.randint(0,1))\r\n if(binaire2unitaire(l)!=binaire2unitaireVerif(l)):\r\n return False\r\n l=""\r\n return True\r\n\r\nprint(testChuckNorris(5))','\r',char(13)),'\n',char(10)),3,0,0,'def binaire2unitaire(x):');
|
|
|
INSERT INTO Enigme VALUES(13,'Hanoi',' Écrire une fonction <b style="color: violet;">hanoi</b> permettant de résoudre le problème des <b>tours d’hanoi </b> peu importe le nombre d''entrées dans la fonction. <br />Cette fonction devra prend en paramètre le <b style="color: #44fff6;">nombre de disques</b>, le <b style="color: #44fff6;">nom</b> de la tour de départ, le <b style="color: #44fff6;">nom</b> la tour d''arrivée et le <b style="color: #44fff6;">nom</b> la tour intermédiaire. <br /> Elle devra retoure une <b style="color: yellow;">liste</b> contenant les déplacements à effectuer (cf exemple ci-dessous).','Pense à utiliser une fonction récursive pour résoudre ce problème. Pour rappel une fonction récursive est une fonction qui s''appelle elle même. ','Le problème des tours de <b>hanoi</b> 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.','<b>Entrée</b> :3,"A","B","C"<br><b>Sortie</b> : [[''A'',''C''],[''A'',''B''],[''C'',''B''],[''A'',''C''],[''B'',''A''],[''B'',''C''],[''A'',''C'']]',replace(replace('def hanoi_rec(l,nb_disks, start, middle, end):\r\n if(nb_disks == 1):\r\n return l.append([start,end])\r\n else:\r\n hanoi_rec(l,nb_disks - 1, start, end, middle)\r\n l.append([start,end])\r\n hanoi_rec(l,nb_disks - 1, middle, start, end)\r\n\r\ndef hanoiVerif(nb_disks,start, middle, end):\r\n l=[]\r\n hanoi_rec(l,nb_disks,start, middle, end)\r\n return l','\r',char(13)),'\n',char(10)),replace(replace('import random as r\r\ndef testhanoi(x):\r\n hanoi(1,"A","B","C")\r\n if(hanoi(3,"A","B","C")!=[[''A'',''C''],[''A'',''B''],[''C'',''B''],[''A'',''C''],[''B'',''A''],[''B'',''C''],[''A'',''C'']]):\r\n return False\r\n for i in range(x):\r\n j=r.randint(1,4)\r\n if(hanoi(j,"Z","E","R")!=hanoiVerif(j,"Z","E","R")):\r\n return False\r\n return True\r\n\r\nprint(testhanoi(5))','\r',char(13)),'\n',char(10)),7,0,0,'def hanoi(nb_disks,start, middle, end):');
|
|
|
INSERT INTO Enigme VALUES(14,'TrianglePascal','Écrire une fonction <b style="color: violet;">triangle_pascal</b> permettant d’afficher le <b>triangle de Pascal</b> jusqu''à un certain nombre <b style="color:#44fff6">n</b> de lignes. Bien sùr <b style="color:#44fff6">n</b> sera passé en argument à la fonction. La fonction devra renvoyer une <b style="color: yellow;">liste</b> contenant les lignes du triangle de Pascal. (cf l''exemple pour plus de détails).','Il n''y a pas d''aide pour cette énigme','Le triangle arithmétique de Pascal est le triangle dont la ligne d''indice n (n = 0, 1, 2...) donne les coefficients binomiaux (n) pour p = 0, 1, 2..., n.<br/> La construction de ce triangle de Pascal est simple, on part de 1 à la première ligne, par convention c''est la ligne zéro (n = 0) Pour avoir un terme de la ligne suivante, on prend le terme juste au-dessus, et on lui additionne celui qui est juste avant, (0 si il n''y a rien). Mathématiquement, on applique la formule :<br/> (n+1) = (n) + ( n )','<b>Entrée</b> : 4<br><b>Sortie</b> : [[1],[1,1],[1,2,1],[1,3,3,1]]',replace(replace('def estTriangleDePascal(n):\r\n if(n==0):\r\n return []\r\n if(n==1):\r\n return [[1]]\r\n triangle=[[1],[1, 1]]\r\n columns=n\r\n for line in range(2,n):\r\n triangle.append([1])\r\n for column in range(1, line):\r\n triangle[line].append(triangle[line - 1][column - 1] + triangle[line - 1][column])\r\n triangle[line].append(1)\r\n return triangle','\r',char(13)),'\n',char(10)),replace(replace('import random as r\r\ndef testTriangleDePascal(n):\r\n triangle_pascal(0)\r\n listTest=[0,1]\r\n for i in range(0,n):\r\n listTest.append(r.randint(5,140))\r\n for i in listTest:\r\n if(triangle_pascal(i)!=estTriangleDePascal(i)):\r\n return False\r\n return True\r\n \r\nprint(testTriangleDePascal(5))','\r',char(13)),'\n',char(10)),8,0,0,'def triangle_pascal(n):');
|
|
|
INSERT INTO Enigme VALUES(19,'Palindrome','Écrire une fonction <b style="color: violet;">estPalindrome(var)</b> qui prend en argument un <b style="color:#44fff6">entier</b> et qui renvoie <b style="color: green;">True</b> si c’est un palindrome et <b style="color: red;">False</b> sinon.','En python l’instruction [::-1] permet d’inverse une chaine de caractère. <br /><br />print("ae"[::-1]) -> ea.','Il n''y a pas de rappel pour cette enigme.','<b style="color: violet;">estPalindrome(12321)</b> renvoie <b style="color: green;"></bstyle>True</b>',replace('def estPalindromeVerif(var):\n if(var == var[::-1]):\n return True\n else:\n return False','\n',char(10)),replace('import random as r\ndef testPalindrome(x):\n l=[1,2,3,2,1]\n if(estPalindrome(l)==False):\n return False\n l=[9,5,7,7,9]\n if(estPalindrome(l)==True):\n return False\n l=[]\n for i in range(x):\n for j in range(r.randint(1,10)):\n l.append(r.randint(0,9))\n if(estPalindromeVerif(l)!=estPalindrome(l)):\n return False\n l=[]\n return True\n\nprint(testPalindrome(5))','\n',char(10)),0,600,100,'def estPalindrome(var):');
|
|
|
-- INSERT INTO Enigme VALUES(20,'CesarDecrypt','Écrire une fonction <b style="color : violet">Decrypt</b> qui prend en argument un <b style="color: #44fff6;">message</b> et une <b style="color: #44fff6;">clé</b> et qui retourne le message décrypté avec le code <b>César</b>.(les espace ne seront pas encodé.)','La fonction ord(char) de python permet de retourner l''Unicode (standard d’encodage de caractères) d''un caractère.<br/> Par exemple, ord(''a'') retourne ''97'' et ord(''b'')) retourne ''98''.','Le code <b>César</b> (ou chiffre de César ) est un chiffrement par substitution, <br>où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l''alphabet .<br>Par exemple A avec une clé 2 devient C.','<b>Entrée</b> :      <b>Sortie</b> : <br>''fbehu'',3      cyber',replace('def DecryptVerif(text, key):\n result = ""\n for i in range(len(text)):\n char = text[i]\n if(char==" "):\n result+=" "\n elif (char.isupper()):\n result += chr((ord(char) - key-65) % 26 + 65)\n else:\n result += chr((ord(char) - key - 97) % 26 + 97)\n return result','\n',char(10)),replace('import random as r\ndef testDecrypte(x):\n Decrypt("",1)\n if(Decrypt("Jgnnq yqtnf",2)!="Hello world"):\n return False\n if(Decrypt("Blarycnm",9)!="Scripted"):\n return False\n for i in range(x):\n l=""\n cle=r.randint(1,26)\n for i in range(r.randint(1,10)):\n l+=chr(r.randint(97,122))\n if(Decrypt(l,cle)!=DecryptVerif(l,cle)):\n return False\n return True\n \nprint(testDecrypte(5))','\n',char(10)),0,600,100,'def Decrypt(text, key):');
|
|
|
-- INSERT INTO Enigme VALUES(27,'Alternance','Coder la fonction <b style="color: violet;">tri</b>. Cette fonction prend en paramètre deux <b style="color: yellow;">chaine de caractère</b>, prend tour à tour les caractères des deux chaines et retourne la <b style="color: yellow;">chaine de caractère</b> trié. (cf l''exemple)','Il n''y a pas d''aide pour cette énigme','Il n''y a pas de rappel pour cette énigme','<b>Entrée</b> : "Hlowrd", "el ol" <br><b>Sortie</b> : "Hello world" ',replace(replace('def triVerif(a,b):\r\n s = ""\r\n i = 0\r\n while len(s)<len(a+b):\r\n if(len(a)>i):\r\n s += a[i]\r\n if(len(b)>i):\r\n s += b[i]\r\n i += 1\r\n return s','\r',char(13)),'\n',char(10)),replace(replace('import random as r\r\ndef triTest(x):\r\n a = "Hlowrd"\r\n b = "el ol"\r\n if(triVerif(a,b)!=tri(a,b)):\r\n return False\r\n return True\r\n\r\nprint(triTest(5)) ','\r',char(13)),'\n',char(10)),5,0,0,'def trie(a,b):'); |