Implémantation de l'enigme de la chouette + ... Retrait de duplication de codeServeurDeTest
parent
2abc2cbc50
commit
5ce31bbfc8
@ -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))
|
|
@ -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 dé) va varier de 1 à 6.
|
||||||
|
for d1 in range(1, 7):
|
||||||
|
for d2 in range (1, 7):
|
||||||
|
#Faire...
|
||||||
|
` ;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
document.getElementById("textAide").textContent = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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>
|
Loading…
Reference in new issue