LeonLenclos / alan

Alan est un robot (il parle)
http://alan.cienokill.fr
9 stars 0 forks source link

Rive script Tips and Tricks #189

Closed BertrandLenclos closed 4 years ago

BertrandLenclos commented 4 years ago

ESPACE ET PARANTHÈSES

cela peut servir pour des suffixes/préfixes

par exemple

LeonLenclos commented 4 years ago

ce truc avait été découvert par des collégiens en atelier ! très utile pour les conjugaisons les pluriels etc

BertrandLenclos commented 4 years ago

a noter que ça fonctionne aussi dans les array. On pourrait se demander si il ne serait pas pertinent d'en généraliser l'utilisation dans les rives à toutes les fins de mots un peu long (accord) et les fins de verbes (conjugaison), dans la mesure ou cela ne produit pas des déclanchements intempestifs... Je généralise aux étoiles collées aux mots. Ca pourrait permettre aux trigger de se déclencher même en cas d'accord ou de conjugaison approximative, et rendre le chat bot beaucoup plus souple sans pour autant coder avec des fautes, ce que l'on s'est très logiquement interdit jusque la. C'est un assez gros boulot....

a remarquer quand même quelques propriétés curieuses : exemple :+ *aze* alpha va être déclenchée par : donne moi le lazer alpha ce qui veut dire que : si l'étoile commence ou fini le trigger, en plus d'être une wildcard obligatoire sur le mot lui-même, c'est une wildcard optionnelle sur la fin (ou le début) de la phrase...

LeonLenclos commented 4 years ago

a remarquer quand même quelques propriétés curieuses : exemple :+ aze alpha va être déclenchée par : donne moi le lazer alpha ce qui veut dire que : si l'étoile commence ou fini le trigger, en plus d'être une wildcard obligatoire sur le mot lui-même, c'est une wildcard optionnelle sur la fin (ou le début) de la phrase...

Ouais faut éviter de se servir de ça c'est sûrement un bug. Donc ca risque d'etre corrigé dans des versions futures de rivescript. Donc si on met a jour rivescript et qu'on s'est servi de ça, ça marchera plus..

edit: J'ai rien dit, pardon. C'est bon

BertrandLenclos commented 4 years ago

Tu veux dire éviter globalement d'utiliser l'étoile collée et les parenthèses collées ?

LeonLenclos commented 4 years ago

Non pardon j'avais mal lu. NE RIEN EVITER D'UTILISER. TOUT EST BON.

BertrandLenclos commented 4 years ago

Non pardon j'avais mal lu. NE RIEN EVITER D'UTILISER. TOUT EST BON.

Pas sur justement. Le fait qu'une étoile collée à un mot en début ou en fin de trigger devienne l'équivalent d'une wildcard optionnelle ressemble plus à un bug qu'à une fonctionnalité intentionnelle. Je pense qu'il faut ignorer cette propriété et rajouter [] au cas ou elle serait corrigée. dans l'exemple précédant, écrire plutôt : `+ [] aze alpha` Pour le reste, je pense qu'on peut effectivement l'utiliser massivement.

fabturing commented 4 years ago

Je pense qu'il n'y a pas de beug (mais je suis pas sur d'avoir bien compris):

* est déclenchée quelque-soit la suite de caractères qu'elle remplace, indépendamment du fait que cette suite contienne ou pas des espaces. Donc il est normal que

+ *aze* alpha

soit déclenchée par "donne moi le laser alpha", le contenu de l'étoile étant "donne moi le l"

Il faut donc vraiment se méfier des étoiles collés aux mots, par exemple remplacer dans un déclencheur + il sait rien du tout par + il sai* rien du tout va faire déclencher le trigger pour des phrases comme "il saigne même pour un rien du tout" . Je crois que la bonne solution c'est d'utiliser _ qui est l'équivalent de * mais qui interdit les espaces et les chiffres:

+ il sai_ rien du tout

ou sinon comme le suggérait Bébert restreindre encore plus avec des parenthèses ou des crochets:

+ il sai[t|s] rien du tout

qui marche pour il sai, il sait, il sais

Je pense que pour les fins et débuts de mots _ est vraiment tout indiqué.

LeonLenclos commented 4 years ago

+1

Les _ en (su|pré)fixe ça semble nickel.

BertrandLenclos commented 4 years ago

Cool, j'ai reporté cette issue dans la doc rive

BertrandLenclos commented 4 years ago

j'ai reporté cette issue dans la doc : aide_rivescript.md