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