Mise à jour de fonction de test du code cesar +...

Implémantation de l'enigme de la chouette + ...
Retrait de duplication de code
ServeurDeTest
Noé GARNIER 3 years ago
parent 2abc2cbc50
commit 5ce31bbfc8

@ -7,7 +7,7 @@ def cul_de_chouette(valeur):
res.append([i, j, k])
return res
def est_cul_de_chouette(valeur):
def cul_de_chouetteVerif(valeur):
res=list()
for i in range(1, 7):
for j in range(i, 7):
@ -16,12 +16,12 @@ def est_cul_de_chouette(valeur):
res.append([i, j, k])
return res
def test_est_cul_de_chouette(n):
def test_cul_de_chouette(n):
listTest=[]
for i in range(0,n)
listTest.append(r.randint(3,18))
for i in listTest
if(cul_de_chouette(i)!=est_cul_de_chouette(i))
if(cul_de_chouette(i)!=cul_de_chouetteVerif(i))
return False
return True

@ -1,3 +1,5 @@
import random as r
def Encrypt(text, key):
result = ""
for i in range(len(text)):
@ -10,6 +12,17 @@ def Encrypt(text, key):
result += chr((ord(char) + key - 97) % 26 + 97)
return result
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 Decrypt(text, key):
@ -24,7 +37,47 @@ def Decrypt(text, key):
result += chr((ord(char) - key - 97) % 26 + 97)
return result
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 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
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(Encrypt("Hello world", 29))
print(Decrypt("Khoor zruog", 29))
print(Decrypt("Scripted",4))Oynelpaz

@ -1,30 +0,0 @@
def Encrypt(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 Decrypt(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
print(Encrypt("Hello world", 29))
print(Decrypt("Khoor zruog", 29))

@ -34,9 +34,9 @@ def estTriangleDePascal(n):
def testTriangleDePascal(n):
listTest=[0,1]
for i in range(0,n)
listTest.append(r.randint(5,140))
for i in listTest
if(triangleDePascal(i)!=estTriangleDePascal(i))
for i in range(0,n):
listTest.append(r.randint(5,140))
for i in listTest:
if(triangleDePascal(i)!=estTriangleDePascal(i)):
return False
return True

@ -0,0 +1,113 @@
function run() {
const terminal = document.getElementById("console");
const runner = new BrythonRunner({
stdout: {
write(content) {
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stderr: {
write(content) {
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stdin: {
async readline() {
terminal.innerHTML += "\n";
terminal.scrollTop = terminal.scrollHeight;
var userInput = prompt();
return userInput;
},
flush() {}
}
});
var code = editor.getValue();
runner.runCode(code);
setTimeout(() => {
runner.stopRunning();
}, 10*1000);
}
function run_init() {
if (document.getElementById("console") != '') {
document.getElementById("console").innerHTML = '';
}
run();
}
var editor = ace.edit("editor");
editor.setTheme("ace/theme/vibrant_ink");
editor.getSession().setMode("ace/mode/python");
editor.setFontSize("16px");
editor.container.style.height = "250px"
editor.setOptions({
enableLiveAutocompletion: true,
copyWithEmptySelection: true,
showGutter: true,
useWrapMode: true, // wrap text to view
indentedSoftWrap: false,
});
//Function that execute given code and return the result in a given element by id
function exec(code, id) {
const terminal = document.getElementById("console");
const runner = new BrythonRunner({
stdout: {
write(content) {
if (id == "code"){
retourCode = content;
}
if (id == "solution"){
retourSolution = content;
}
},
flush() {}
},
stderr: {
write(content) {
if (id == "solution"){
retourSolution = "ERROR";
}
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stdin: {
async readline() {
terminal.innerHTML += "\n";
terminal.scrollTop = terminal.scrollHeight;
var userInput = prompt();
return userInput;
},
flush() {}
}
});
runner.runCode(code)
setTimeout(() => {
runner.stopRunning();
}, 10*1000);
}
//~ Function that check if the code in the editor as the same result as the solution.
function check(){
if (retourSolution == "ERROR") {
result.innerHTML = "Il semblerait qu'il y a une erreur dans ton code :/";
result.classList.remove('hidden');
}
else if (retourSolution == retourCode) {
result.innerHTML = "Bien joué";
result.classList.remove('hidden');
}
else {
result.innerHTML = "Mauvaise réponse";
result.classList.remove('hidden');
}
}

@ -0,0 +1,46 @@
//~ Function that test the user code
async function submit(){
var test = editor.getValue()+`\n
import random as r
def cul_de_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_cul_de_chouette(n):
listTest=[]
for i in range(0,n):
listTest.append(r.randint(3,18))
for i in listTest:
if(cul_de_chouette(i)!=cul_de_chouetteVerif(i)):
return False
return True
print(test_cul_de_chouette(5))
`;
exec("print ('True')", "code");
exec(test, "solution");
await new Promise(r => setTimeout(r, 1500));
check();
}
function aide(){
if(document.getElementById("textAide").textContent == ""){
document.getElementById("textAide").textContent = `
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 ) va varier de 1 à 6.
for d1 in range(1, 7):
for d2 in range (1, 7):
#Faire...
` ;
}
else{
document.getElementById("textAide").textContent = "";
}
}

@ -1,117 +1,3 @@
function run() {
const terminal = document.getElementById("console");
const runner = new BrythonRunner({
stdout: {
write(content) {
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stderr: {
write(content) {
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stdin: {
async readline() {
terminal.innerHTML += "\n";
terminal.scrollTop = terminal.scrollHeight;
var userInput = prompt();
return userInput;
},
flush() {}
}
});
var code = editor.getValue();
runner.runCode(code);
setTimeout(() => {
runner.stopRunning();
}, 10*1000);
}
function run_init() {
if (document.getElementById("console") != '') {
document.getElementById("console").innerHTML = '';
}
run();
}
var editor = ace.edit("editor");
editor.setTheme("ace/theme/vibrant_ink");
editor.getSession().setMode("ace/mode/python");
editor.setFontSize("16px");
editor.container.style.height = "250px"
editor.setOptions({
enableLiveAutocompletion: true,
copyWithEmptySelection: true,
showGutter: true,
useWrapMode: true, // wrap text to view
indentedSoftWrap: false,
});
//Function that execute given code and return the result in a given element by id
function exec(code, id) {
const terminal = document.getElementById("console");
const runner = new BrythonRunner({
stdout: {
write(content) {
if (id == "code"){
retourCode = content;
}
if (id == "solution"){
retourSolution = content;
}
},
flush() {}
},
stderr: {
write(content) {
if (id == "solution"){
retourSolution = "ERROR";
}
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stdin: {
async readline() {
terminal.innerHTML += "\n";
terminal.scrollTop = terminal.scrollHeight;
var userInput = prompt();
return userInput;
},
flush() {}
}
});
runner.runCode(code)
setTimeout(() => {
runner.stopRunning();
}, 10*1000);
}
//~ Function that check if the code in the editor as the same result as the solution.
function check(){
if (retourSolution == "ERROR") {
result.innerHTML = "Il semblerait qu'il y a une erreur dans ton code :/";
result.classList.remove('hidden');
}
else if (retourSolution == retourCode) {
result.innerHTML = "Bien joué";
result.classList.remove('hidden');
}
else {
result.innerHTML = "Mauvaise réponse";
result.classList.remove('hidden');
}
}
//~ Function that test the user code
async function submit(){

@ -1,117 +1,3 @@
function run() {
const terminal = document.getElementById("console");
const runner = new BrythonRunner({
stdout: {
write(content) {
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stderr: {
write(content) {
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stdin: {
async readline() {
terminal.innerHTML += "\n";
terminal.scrollTop = terminal.scrollHeight;
var userInput = prompt();
return userInput;
},
flush() {}
}
});
var code = editor.getValue();
runner.runCode(code);
setTimeout(() => {
runner.stopRunning();
}, 10*1000);
}
function run_init() {
if (document.getElementById("console") != '') {
document.getElementById("console").innerHTML = '';
}
run();
}
var editor = ace.edit("editor");
editor.setTheme("ace/theme/vibrant_ink");
editor.getSession().setMode("ace/mode/python");
editor.setFontSize("16px");
editor.container.style.height = "250px"
editor.setOptions({
enableLiveAutocompletion: true,
copyWithEmptySelection: true,
showGutter: true,
useWrapMode: true, // wrap text to view
indentedSoftWrap: false,
});
//Function that execute given code and return the result in a given element by id
function exec(code, id) {
const terminal = document.getElementById("console");
const runner = new BrythonRunner({
stdout: {
write(content) {
if (id == "code"){
retourCode = content;
}
if (id == "solution"){
retourSolution = content;
}
},
flush() {}
},
stderr: {
write(content) {
if (id == "solution"){
retourSolution = "ERROR";
}
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {}
},
stdin: {
async readline() {
terminal.innerHTML += "\n";
terminal.scrollTop = terminal.scrollHeight;
var userInput = prompt();
return userInput;
},
flush() {}
}
});
runner.runCode(code)
setTimeout(() => {
runner.stopRunning();
}, 10*1000);
}
//~ Function that check if the code in the editor as the same result as the solution.
function check(){
if (retourSolution == "ERROR") {
result.innerHTML = "Il semblerait qu'il y a une erreur dans ton code :/";
result.classList.remove('hidden');
}
else if (retourSolution == retourCode) {
result.innerHTML = "Bien joué";
result.classList.remove('hidden');
}
else {
result.innerHTML = "Mauvaise réponse";
result.classList.remove('hidden');
}
}
//~ Function that test the user code
async function submit(){

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Brython</title>
<link rel="stylesheet"href="../css/all.css" />
</head>
<body>
<div class="enigme">
<h2>
Écrire une fonction cul_de_chouette qui, pour une valeur donnée, renvoie une liste contenant toutes les solutions de somme de 3 dés pouvant donner cette valeur.
</br>La valeur peut aller de 3 à 18 .
</br>Les solutions doivent être uniques.(1,2,3) et (3,2,1) sont la même solution.
</h2>
</div>
<h1 id="result" class="hidden"></h1>
<button onclick="run_init()">run</button>
<button onclick="submit()">submit</button>
<button onclick="aide()" id="buttonAide">Aide</button>
<p id="textAide"></p>
<div class='editor_class' id='editor'>def cul_de_chouette(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
</div>
<div class='compiler_class'>
<textarea id='console' readonly></textarea>
</div>
<script src="https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="https://raw.githack.com/pythonpad/brython-runner/master/lib/brython-runner.bundle.js" type="text/javascript" charset="utf-8"></script>
<script src="../javascript/base.js"></script>
<script src="../javascript/chouette.js"></script>
</body>
</html>

@ -53,6 +53,7 @@
<script src="https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="https://raw.githack.com/pythonpad/brython-runner/master/lib/brython-runner.bundle.js" type="text/javascript" charset="utf-8"></script>
<script src="../javascript/base.js"></script>
<script src="../javascript/chuckNorris.js"></script>
</body>

@ -34,6 +34,7 @@
<script src="https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="https://raw.githack.com/pythonpad/brython-runner/master/lib/brython-runner.bundle.js" type="text/javascript" charset="utf-8"></script>
<script src="../javascript/base.js"></script>
<script src="../javascript/palindrome.js"></script>
</body>

Loading…
Cancel
Save