AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

 

 reconnaitre un mot entré par l'utilisateur(résolue)

Aller en bas 
3 participants
AuteurMessage
marty
Utilisateur confirmé: Rang ***
marty


Messages : 697
Projet Actuel : laby-ereinte !

reconnaitre un mot entré par l'utilisateur(résolue) Empty
MessageSujet: reconnaitre un mot entré par l'utilisateur(résolue)   reconnaitre un mot entré par l'utilisateur(résolue) EmptyMar 29 Nov 2011 - 23:20

salut j'ai besoin de vos lumières!

j'ai fait un début de "programme" afin de reconnaitre des réponses entrées par le joueur.

dans un JDR:
admettons que je pose une question au joueur du type :vers où vous dirigez vous?
il répond :maisin au lieu de maison il a fait une faute de frappe (sisi ça arrive!)

mon programme vérifie dans sa base de données pour l'instant 4 mots :maison,table,dimanche,mission

et les listes avec un "score de ressemblance"
ça fonctionne mais c'est pas bien codé!

donc si quelqu’un veut bien jeter un œil et m'aider à faire un programme propre et plus simple!


merci






Dernière édition par marty le Mer 30 Nov 2011 - 22:18, édité 1 fois
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

reconnaitre un mot entré par l'utilisateur(résolue) Empty
MessageSujet: Re: reconnaitre un mot entré par l'utilisateur(résolue)   reconnaitre un mot entré par l'utilisateur(résolue) EmptyMer 30 Nov 2011 - 0:11

Alors normalement, faudrait faire ça avec un réseau de Bayes et une couche de "Laplace smoothing" par dessus... Si tu ne sais pas de quoi je parle, il reste les solutions bateaux qui marchent à peu près, consistant à tester le nombre de lettres justes, à différents décalages, et d'additionner le tout avec un poids dégressif selon l'importance du décalage.

Bref, si tu compare "TABLE" dans ton dico avec l'entrée "TABE", ça ferait :

décalage 0 : "TABLE" <=> "TABE"
3 lettres correspondent = 3*10 points

décalage 1: "_TABLE" <=>"TABE"
0 lettres correspondent = 0 points

décalage -1 : "ABLE" <=> "TABE"
1 lettre correspond : 1 * (10-1) points

Un autre truc à tester, c'est les groupements : plus un groupement est long, plus il rapporte de points, c'est à dire plus il y a de caractères justes à la suite, plus ça rapporte de points, indiquant une plus forte probabilité de similarité que des lettres disparates.

Bref, faut y aller au jugé, en rajoutant peu à peu des petites règles, qui permettront de définir des ressemblances.

Bien sûr, le mieux reste la probabilité, mais tu ne tiens peut être pas à te compliquer la vie pour un jeu :p

_________________
reconnaitre un mot entré par l'utilisateur(résolue) Control-commentTous les icones de gm utilisables sur le cbna ICI  reconnaitre un mot entré par l'utilisateur(résolue) Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

reconnaitre un mot entré par l'utilisateur(résolue) Empty
MessageSujet: Re: reconnaitre un mot entré par l'utilisateur(résolue)   reconnaitre un mot entré par l'utilisateur(résolue) EmptyMer 30 Nov 2011 - 0:17

Juste comme ça je ferais un script simple du genre

Code:
var i, j;
s1 = argument0 // mot entré par l'utilisateur
s2 = argument1 // mot de la base de données
err = 100
len = string_length(s2)

// lettres fausses
temp = 0
for(i=0; i<len; i+=1)
{
    if(string_copy(s1, i+1, 1) != string_copy(s2, i+1, 1))
        temp += 1
}

err = min(err, temp)

// lettres oubliées
for(i=0; i<len; i+=1)
{
    ss = string_delete(s2, i+1, 1)
    temp = 1 // une lettre manquante soit une erreur
    for(j=0; j<len; j+=1)
    {
        if(string_copy(s1, j+1, 1) != string_copy(ss, j+1, 1))
            temp += 1
    }
    err = min(err, temp)
}

return err

Il renvoie une valeur qui correspond a un taux d'erreurs entre le mot entré par l'utilisateur et le mot de la bdd.
Pour 0 les mots sont identiques, pour 1 y a juste une petite erreur du style oublis de lettre ou mauvaise lettre, pour plus bah y a de plus en plus d'erreurs.


Après tu peut te prendre la tête avec des trucs plus compliqués, mais a mon avis pour juste vérifier de petits mots une simple vérification suffit :p

_________________
reconnaitre un mot entré par l'utilisateur(résolue) Runningpotato1reconnaitre un mot entré par l'utilisateur(résolue) TvF6GED reconnaitre un mot entré par l'utilisateur(résolue) MdetltS
Revenir en haut Aller en bas
Contenu sponsorisé





reconnaitre un mot entré par l'utilisateur(résolue) Empty
MessageSujet: Re: reconnaitre un mot entré par l'utilisateur(résolue)   reconnaitre un mot entré par l'utilisateur(résolue) Empty

Revenir en haut Aller en bas
 
reconnaitre un mot entré par l'utilisateur(résolue)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» draw_text(x,y,str) reconnaitre un caractère dans str (résolue)
» [resolu]Reconnaitre la touche del
» Reconnaitre et détruire instance
» Reconnaitre des mots clés en temps réel
» if,while,do,&&(résolue)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: