xxxxxxxxxx
71
//Ce code permet de jouer aux enigmes grâce à la reconnaissance d'objet; le client pourrait être une entreprise qui vend un service de jeu en ligne. 3 énigmes sont proposées, la personne doit trouver la réponse en montrant l'objet qui correspond. Il se base sur le même principe que Pokemon go par exemple qui a su conquérir un bon public //
var model;
var video;
var loaded;
var count = 1;
var count_tries = 0;
function setup() {
createCanvas(400, 300);
mobilenet.load().then(modelLoaded);
video = createCapture(VIDEO);
video.size(400, 300);
video.hide();
createButton("Take a picture").mousePressed(btnClicked);
createElement("h3").id('answer');
createElement("h4", "Attempt number 0").id('attempt');
createElement("h5", "").id('res_mobnet');
}
function classifyDone(res) {
if (count == 1 && (res[0].className == "analog clock" || res[0].className == "wall clock" || res[0].className == "digital clock"))
{
document.getElementById('riddle').innerHTML = '2) What begins with an E but only has one letter?';
document.getElementById('answer').innerHTML = "Correct! Good work. Let's see if you can solve the next one.";
document.getElementById('attempt').innerHTML = "Attempt number 0";
count += 1;
count_tries = 0;
} else if (count == 2 && (res[0].className == "envelope")){
document.getElementById('riddle').innerHTML = '3) What becomes wetter the more it dries?';
document.getElementById('answer').innerHTML = "Correct! Good work. Let's see if you can solve the last one.";
document.getElementById('attempt').innerHTML = "Attempt number 0";
count += 1;
count_tries = 0;
} else if (count == 3 && (res[0].className == "bath towel")){
document.getElementById('riddle').innerHTML = 'There will be more riddles in the next version. See you soon!';
document.getElementById('answer').innerHTML = "Correct! Good work.";
document.getElementById('attempt').innerHTML = "";
count += 1;
count_tries = 0;
}else {
count_tries += 1;
document.getElementById('answer').innerHTML = "Wrong... Try again!";
document.getElementById('attempt').innerHTML = "Attempt number " + str(count_tries);
}
if (count_tries > 15){
var answer = 'clock';
if (count == 2){
answer = 'envelope';
}else if (count ==3){
answer = 'towel';
}
document.getElementById('attempt').innerHTML = "Attempt number " + str(count_tries) + ". The correct answer is : " + answer;
}
document.getElementById('res_mobnet').innerHTML = "MobileNet recognizes : " + res[0].className;
}
function modelLoaded(net) {
model = net;
loaded = true;
print("Model loaded");
}
function btnClicked() {
image(video, 0, 0, 400, 300);
if (loaded == true) {
model.classify(video.elt).then(classifyDone);
}
}