STAF 14 - ex7 - Robot de conversation avec Javascript


Le choix du sujet

En examinant les exemples et travaux des années précédantes, je réfléchissais au sujet que j'allais traiter : lequel pourrait convenir à ce format ? J'ai d'abord eu l'idée de fournir une aide CSS, puis j'ai pensé que le format robot de conversation n'était pas l'idéal pour ce genre d'informations.

Avant de commencer, j'étais consciente que lorsqu'on définit les "interventions" du robot, en restant simple, on ne peut prévoire tous les cas de figure. J'imaginais bien que beaucoup d'input (i.e. ce que "dit" l'utilisateur-trice) auraient des réponses déplacées, car il est impossible à ce niveau de prendre en charge n'importe quelle intervention en y apportant une réponse adaptée.

Sans méchanceté ni mauvaises intentions, cela m'a rappelé une certaine réponse d'une vieille dame que nous allions voir enfants, lorsque nous allions à la campagne. En effet, elle avait tendance à répondre "eh ben c'est bien" même si nous lui annoncions par exemple que nous avions passé deux semaines au lit avec 40° de fièvre.

C'est ce qui m'a donné l'idée de reproduire une conversation que pourrait avoir une personne âgée qui reçoit de la visite chez elle. Je me suis donc inspirée de mes souvenirs d'enfance pour définir les output (i.e. ce que "répond" le robot).

Finalement, je m'aperçois qu'un tel robot, uniquement ludique, aurait davantage sa place dans le moo... Il accueillerait les personnes qui viennent chez moi quand je ne suis pas connectée par exemple, comme l'a fait Dajana l'année passée. Cependant, maintenant que l'exercice est fait et que le délai est dans un jour, je ne vais pas reproduire le robot dans le moo.

Au niveau technique

J'ai d'abord repris l'exemple fourni pour analyser la manière dont fonctionne le script. J'ai tout de suite séparé le script du fichier xhtml, je préfère travailler comme ça.

Pour comprendre la syntaxe des expressions régulières utilisées, j'ai regardé la page staf14 sur ce sujet. J'avais déjà eu une vague première approche lors de mon exercice 3 (et cela même si en définitive je n'en aurais pas eu besoin).

J'ai commencé à mettre mes propres expressions régulières dans le fichier d'exemple, que j'ai finalement assez peu modifié. J'ai aussi modifié l'output en y ajoutant la personne qui parle : "Vous" ou "Madame Laurent", et les deux fenêtre popup pour y ajouter un style. J'ai également ajouté une fenêtre d'output, ainsi les interventions de l'utilisateur-trice et du robot ne s'affiche pas dans la même fenêtre.

Difficultés rencontrées

J'avais définis que la plupart des patterns ne se trouvaient pas nécessairement au début de l'input, (.* pattern (.*)). Depuis lors, le pattern n'était plus détecté que s'il était précédé de texte quelquonque, je ne comprenais pas pourquoi. J'ai essayé sans grande conviction d'ajouter des parenthèses ((.*) pattern (.*)) mais ça n'avait aucun résultat sur mon problème. C'est alors que j'ai réalisé que c'était dû à l'espace entre la première expression régulière et le pattern.

Au niveau du contenu

Comme je l'ai mentionné plus haut, j'ai utilisé mes souvenirs pour créer ce que dit le robot. J'ai aussi inventé, bien entendu. Je me rends compte qu'il est très difficile de reproduire une conversation qui tient la route de cette façon.

J'avais exclusivement tenu compte de la forme "tu". Lorsque j'ai testé le robot, je me suis aperçue que j'utilisais naturellement la forme "vous" sans m'en rendre compte. J'ai alors commencé à inclure de nouvelles règles pour le vous, puis j'ai eu l'idée de créer une réponse simple qui dit "tu peux me dire tu" lorsque la forme polie est employée.

Pour donner plus de profondeur à la conversation, j'ai choisis des thèmes qui sont proposés lors des interventions "randomResponses" de Mme Laurent. Ainsi, si la personne choisit de parler d'un thème que le robot amène, comme les lapins, celui-ci lui répond quelque chose en rapport avec ce thème.

Je ne pensais pas en commencant qu'il serait si difficile de reproduire une conversation "libre".

Au niveau graphique

J'ai choisi des couleurs mauves, pour représenter l'aspect intérieur confortable. J'avais dans l'idée d'insérer le dessin d'une fenêtre et deux fauteuils occupés, avec les output de chaque côté, comme des bulles de BD (une pour chaque personnage). En mettant mon idée à éxécution, j'ai trouvé le résultat moins heureux avec le dessin, qui n'était pas assez élaboré. J'ai décidé de ne pas passer plus de temps pour trouver une illustration convenant mieux, la page était suffisemment chargée de toute façon. J'ai donc conservé l'idée de séparer les deux outputs, et j'ai essayé de les rendre différents de la ligne où l'utilisateur-trice rentre son texte en modifiant leurs bordures.


XML valide || CSS valide