Overblog
Suivre ce blog Administration + Créer mon blog
Le blog du CRRIAM

ordre de detection

ordre de detection

2 Octobre 2016 , Rédigé par crriam Publié dans #ordre de detection

Subtilité a la con

je viens de m'appercevoir que rivescript est un peu con défois et ça pose des problemes avec l'exemple ci dessus.

Pourquoi ?

L'ordre de la detection se fait au nombre de lettre exemple :

+ auto *
- c est le 1er qui match

+ * autom
- c est le 2eme qui match

si on tape auto aze autom / ou meme / auto autom
c'est le 2eme qui match car autom compte une lettre de plus qu'auto

si y a une egalite en nombre de lettre, c est celui du haut qui est matcher en 1er exemple

+ auto *
- c est le 1er qui match

+ * auto
- c est le 2eme qui match

Si y a

+ auto *
- c est le 1er qui match

+ * aut
- c est le 2eme qui match

C'est le 1er qui matche car auto a plus de lettre que aut

avec notre exemple d'auto apprentissage, si on mets autorecplus tu aimes <star>

ca matchera apres l'instruction [*] tu aimes * et ça ne l’écrira pas dans le fichier :/ il faut donc trouver une autre solution.

suite ordre de detection

Parfois rivescripte bug, je ne savais pas pourquoi, et je me suis rendu compte que souvent ça pouvait etre a cause de ça :

un [*] semble prioritaire sur un *

+ auto [*]
- c est le 1er qui match

+ * autom
- c est le 2eme qui match

C'est le 1er qui match

Pour deux [*] c'est celui du haut qui match

+ auto [*]
- c est le 1er qui match

+ [*] autom
- c est le 2eme qui match

C'est le 1er qui match

mais si on mets 2 [*]

+ auto [*]
- c est le 1er qui match

+ [*] autom [*]
- c est le 2eme qui match

c est le 2eme qui match

en egalité de [*] c'est le 1er qui match indifferament de la place

+ auto [*] [*]

matchera en 1er autant que [*] auto [*]

par contre

c'est celui qui a le plus de [*] qui match en premier

+ auto [*]
- c est le 1er qui match

+ [*] autom [*] [*]
- c est le 2eme qui match

c est le 2eme qui match

Voila qui devrais résoudre les problemes :)

Lire la suite