You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
2.8 KiB

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');
}
}