Blind test et regex
Résolu
Mr.O'nyme
Messages postés
668
Date d'inscription
Statut
Membre
Dernière intervention
-
Mr.O'nyme Messages postés 668 Date d'inscription Statut Membre Dernière intervention -
Mr.O'nyme Messages postés 668 Date d'inscription Statut Membre Dernière intervention -
Bonsoir, 
Je suis en terminale spécialité ISN, et en projet de fin d'année j'ai décidé de faire un blind test.
Mais en voulant ajouter de l'interactivité dans le programme je suis confronté à un problème. Je précise que je réalise ce blind test en html et javascript afin de pouvoir le mettre en ligne.
Ceci est une capture d'écran de la partie du code qui pose problème, la fonction "verif" est appelée par le clic sur un bouton. Le titre du morceaux a préalablement été saisie par le joueur dans "zoneSaisie". Cette fonction a donc pour but de vérifier sa réponse. La variable " titre" contient le titre du morceaux et le nom de l'artiste ( tout deux récupérés à partir du nom du fichier ).
Le souci c'est que actuellement le joueur doit saisir exactement la réponse ce qui ne laisse aucune marge d'erreur. J'ai donc pensé à utilisé indexof et/ou regex pour vérifier si une partie de la réponse est présente dans le texte saisie par l'utilisateur. Mais je ne vois pas bien comment faire.
je vous remercie d'avance de bien vouloir prendre le temps de lire mon problème. N'hésitez pas à me demander des précisions
Cordialement

Je suis en terminale spécialité ISN, et en projet de fin d'année j'ai décidé de faire un blind test.
Mais en voulant ajouter de l'interactivité dans le programme je suis confronté à un problème. Je précise que je réalise ce blind test en html et javascript afin de pouvoir le mettre en ligne.
Ceci est une capture d'écran de la partie du code qui pose problème, la fonction "verif" est appelée par le clic sur un bouton. Le titre du morceaux a préalablement été saisie par le joueur dans "zoneSaisie". Cette fonction a donc pour but de vérifier sa réponse. La variable " titre" contient le titre du morceaux et le nom de l'artiste ( tout deux récupérés à partir du nom du fichier ).
Le souci c'est que actuellement le joueur doit saisir exactement la réponse ce qui ne laisse aucune marge d'erreur. J'ai donc pensé à utilisé indexof et/ou regex pour vérifier si une partie de la réponse est présente dans le texte saisie par l'utilisateur. Mais je ne vois pas bien comment faire.
je vous remercie d'avance de bien vouloir prendre le temps de lire mon problème. N'hésitez pas à me demander des précisions
Cordialement
A voir également:
- Fabriquer buzzer blind test
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
3 réponses
Je pense que ceci fera l'affaire:
Tu split chacune de tes string (pour en faire des array) puis tu regardes si il y a des valeurs communes via un code comme celui-la :
Par exemple,
Retournera respectivement les résultats suivants :
Tu split chacune de tes string (pour en faire des array) puis tu regardes si il y a des valeurs communes via un code comme celui-la :
function getIntersect(arr1, arr2) { var r = [], o = {}, l = arr2.length, i, v; for (i = 0; i < l; i++) { o[arr2[i]] = true; } l = arr1.length; for (i = 0; i < l; i++) { v = arr1[i]; if (v in o) { r.push(v); } } return r; }
Par exemple,
var La_reponse = [ 'apple', 'orange', 'banana']; //réponse à trouver var reponse_utilisateur2 = [ 'apple', 'orange', 'mango']; //réponse proposée par l'utilisateur var reponse_utilisateur3 = [ 'mango', 'lemon', 'pineapple']; //réponse proposée par l'utilisateur var reponse_utilisateur4 = [ 'orange', 'lemon', 'grapes']; //réponse proposée par l'utilisateur console.log(getIntersect(La_reponse, reponse_utilisateur2)); //returns [apple, orange] console.log(getIntersect(La_reponse, reponse_utilisateur3)); //returns [] console.log(getIntersect(La_reponse, reponse_utilisateur4)); //returns [orange]
Retournera respectivement les résultats suivants :
["apple", "orange"]
[]
["orange"]
Hello!
Je n'ai pas la solution à ton problème, mais j'ai pensé à une méthode peut être plus simple.
Au lieu de laisser la possibilité au spectateur de rentrer certain caractère, tu peux les bannir. Par exemple enlever les accents, les chiffres, caractères spéciaux. De cette façon tu ne laisses que les lettres en minuscules pas exemple et tu limites à fond les conflit ;)
Je n'ai pas la solution à ton problème, mais j'ai pensé à une méthode peut être plus simple.
Au lieu de laisser la possibilité au spectateur de rentrer certain caractère, tu peux les bannir. Par exemple enlever les accents, les chiffres, caractères spéciaux. De cette façon tu ne laisses que les lettres en minuscules pas exemple et tu limites à fond les conflit ;)
Bonjour,
1 - Ta question concerne le JAVASCRIPT (et non le PHP) ... je déplace donc dans le bon forum.
2 - Ici.. on COLLE son code directement sur le forum (en utilisant les balises de code) au lieu de mettre une image...
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.3 - En le faisant en Javascript .. les utilisateurs pourront connaitre les réponses sans souci... juste en regardant le code source de la page affichée.....
La meilleur solution serait de le recoder en PHP justement......
Cela te permettrait également de stocker les questions/réponses dans une Base de donnée.....
1 - Ta question concerne le JAVASCRIPT (et non le PHP) ... je déplace donc dans le bon forum.
2 - Ici.. on COLLE son code directement sur le forum (en utilisant les balises de code) au lieu de mettre une image...
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.3 - En le faisant en Javascript .. les utilisateurs pourront connaitre les réponses sans souci... juste en regardant le code source de la page affichée.....
La meilleur solution serait de le recoder en PHP justement......
Cela te permettrait également de stocker les questions/réponses dans une Base de donnée.....
Bonsoir, je n'ai pas pas le temps de faire du php, de plus je ne peux pas mettre en place de serveur. L'objectif premier de ce blind test est qu'il soit fonctionnel. Je ne cherche pas à parer à l'éventualité d'un utilisateur un peu trop retord.
Ce blind test n'aura qu'une audience très limitée et ne sera pas disponible sur le web. Je cherche seulement à résoudre un problème de programmation simplement.
Merci pour ton aide
Ce blind test n'aura qu'une audience très limitée et ne sera pas disponible sur le web. Je cherche seulement à résoudre un problème de programmation simplement.
Merci pour ton aide
(via un IF et l'utilisation des LENGTH sur les array).
Est ce bien ça ?