Chat virtuel

Description

Voici un script qui vous permet de dialoguer avec un fichier XML. Il s'agit en effet d'un chat virtuel. Le script suivant contient plusieurs fonctions qui nécessite un fichier XML contenant les tags suivant : "question" permet de repérer la question que l'on a posé "reponse" permet en fonction de la question posé, d'obtenir la réponse "enchaine" et un enchainement suite à la réponse qui permet à la réponse de réenchaîner sur une question ou une suggestion. "imbriquer" est une imbriquation qui permet d'indiquer une question ou une référence qui sera alors utilisé pour la prochaine réponse. C'est à dire que l'on peut créer un scénario de réponses à l'aide de l'imbrication sans se préoccuper de la question posé... A vous de composez votre fichier XML pour compléter le dialogue avec la machine !

Source / Exemple :


<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
//Le script suivant contient plusieurs fonctions qui nécessite un fichier XML contenant les tags
//suivant :
//<question> = Permet de repérer la question que l'on a posé
//<reponse> = En fonction de la question posé, cela permet d'obtenir la réponse
//<enchaine> = Enchainement permet à la réponse de réenchaîner sur une question ou une suggestion
//<imbriquer> = Imbriquation permet d'indiquer une question ou une référence qui sera utilisé pour la prochaine réponse
//C'est à dire que l'on peut créer un scénario de réponses à l'aide de l'imbrication sans se préoccuper de la question posé...
function PoserQuestion(){
//on pose la question
var message=prompt("Ecrivez votre message","");
if (message==""){
}else{
//On transforme la réponse toute en minuscule
message=message.toLowerCase();
RechercheReponse(message)
}
//Fin de la fonction
}
function PoserQuestionVide(strImbriquer){
//on pose une question mais dans le vide le message envoyé va être remplacer par l'imbrication
var message=prompt("Ecrivez votre message","");
if (message==""){
}else{
//Le message prend alors la valeur imbriquer et on transforme la réponse toute en minuscule
message=strImbriquer;
message=message.toLowerCase();
RechercheReponse(message)
}
//Fin de la fonction
}

function RechercheReponse(message){
//On recherche la question posé dans le fichier XML
doc = fichierxml.XMLDocument;
collectionxmldonnee = doc.documentElement.getElementsByTagName("xmldonnee");
nbrxmldonnee = collectionxmldonnee.length;

//Avant de rechercher une question à notre réponse, il faut analyser notre question
//1°) Combien de caractère compose notre question
x=message.length;
//2°) Il faut déterminer les mots clés de la question
//??

//On utise une boucle pour questionné le fichier XML :
i=0;
while (i<nbrxmldonnee) {
strQuestion = collectionxmldonnee.item(i).getElementsByTagName("question").item(0).text;
//On transforme la question cherchée toute en minuscule
strQuestion=strQuestion.toLowerCase();
strReponse = collectionxmldonnee.item(i).getElementsByTagName("reponse").item(0).text;
strEnchaine = collectionxmldonnee.item(i).getElementsByTagName("enchaine").item(0).text;
strImbriquer = collectionxmldonnee.item(i).getElementsByTagName("imbriquer").item(0).text;

Resultat=strQuestion.indexOf(message,0);
if(Resultat>-1){
alert (strReponse);
  if (strEnchaine!=""){
  alert(strEnchaine);
  }
i=nbrxmldonnee;
}else{
i++
  if(i==nbrxmldonnee){
  //Si aucune réponse trouvé
  alert("Oué");
  }
}//Fin de la condition Resultat
}//Fin de la boucle

//Le tag imbriquer va permettre de programmer une direction sur les questions / réponses souhaitez.
if (strImbriquer==""){
//Si pas d'imbrication, alors on pose une question normalement
PoserQuestion()
}else{
//Sinon on pose une question dite vide car quelque soit la question, la réponse est déjà tracé...
PoserQuestionVide(strImbriquer)
}

}//Fin de la fonction

</SCRIPT>

</HEAD>
<BODY onLoad="PoserQuestion()">
<xml id="fichierxml" src="Chat Virtuel.xml"/>
</BODY>
</HTML>

Conclusion :


Le xml est dans le zip.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.