Page 1 sur 1

Fonctionement d'un jeu de questions / reponses ( reflexion e

Posté : 10 janv. 2009, 01:12
par supercanard
Bonjour,

Voilà je voudrais avoir des avis et idées autre que le mien sur la façon de mettre en place un simple jeu de question réponse.

En posant comme bémol principal que les réponses à vérifier sont sous forme de texte, finalement un simple jeu banal pourrait ne pas être si simple que ça à développer.

Voici pour illustrer des types de réponses qui pourraient toutes êtres juste malgré une orthographe totalement différente :


Exemple 1 : st machin => saint machin => saint-machin

Exemple 2 : jean machin => machin jean => machin => j machin => j.machin

Exemple 3 : 18 eme siecle => 18em(e) => 18em(e) => XVIIIe => XVIIIeme => XVIII eme

Exemple 4 : 128 403 => 128403 => 128400 ( marge erreur )

Exemple 5 : 12.33 => 12,33


L'idée serait donc d'avoir une validation des réponses qui autorise une certaine marge d'erreur ou des réponses juste mais formulés d'une autre façon que la réponse officielle.
La méthode qui parait évidente à première vue serrait de stocker toutes les réponses. Je trouve pourtant que ce n'est pas super comme méthode, car il faut penser à toutes les réponses possibles à une question... ce qui n'est pas forcément évident.


Donc je pensais plutôt à appliquer aux réponses des manipulations de chaine.
Pour chaque question on aurait des paramètres true ou false avec un traitement associé :

- Ordre des mots non obligatoire ( Ex. jean machin => machin jean )

- Type nom de personnalité : On pourrait si l'on rencontre une lettre suivi d'un espace ou d'un point, la comparer avec le prénom, et comparer le reste avec le nom ( Ex. j machin => j.machin )

- Type dâte : Tableau de correspondance du style ( 1943 / 43 ) ou encore ( 18 / XVIII ). Les caractères alpha ou les chaine ne correspondant pas à une numérotation de siècle serraient ignorés.

- Pourcentage erreur : Inutile d'expliquer, cela s'appliquerait aux chiffres ( 128403 => 128400 )


En espérant avoir des avis :D

Posté : 10 janv. 2009, 12:30
par Aureusms
Tu peux te servir d'un algorithme d'alignement de chaines (http://fr.wikipedia.org/wiki/Algorithme ... man-Wunsch). Cela te donnera le pourcentage de similitude entre la chaine attendue et la chaine entrée par l'utilisateur.
En bas de la page du lien, tu as aussi d'autres ressources intéressantes dans ton cas.

tu as cela aussi : http://fr.wikipedia.org/wiki/Cat%C3%A9g ... t%C3%A8res

Posté : 10 janv. 2009, 13:06
par supercanard
Merci.
Très intéressant ce lien.

Je découvre au passage que ces algo sont implantés dans PHP :

http://fr.php.net/manual/fr/function.similar-text.php
http://fr.php.net/manual/fr/function.levenshtein.php

Posté : 11 janv. 2009, 12:32
par Aureusms
bah tiens, je les connaissais pas celles là... (je m'e..erde de temps en temps a recréer des fonctions existantes...)