Programmation d'un bot en C
Profil bloqué
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
J'ai depuis longtemps un projet que j'aimerais réaliser, mais pas assez compétent pour faire quelque chose de correct hélas.
J'ai quelques notions en C, plutôt vagues (je comment ça fonctionne, déclarer des variables, tout ça tout ça...) mais je reste plus que novice dans le domaine.
C'est pourquoi je fait appel à tous ceux qui s'y connaissent bien mieux que moi pour m'aider à faire ce que je souhaite.
Le but serait de réaliser ce qu'on peut appeler un "tchat bot", c'est à dire un bot avec lequel on peut "discuter".
Je précise immédiatement que l'intérêt est plus que limité. Ce qui me motive c'est avant tout la réalisation de celui-ci, pas réellement son utilisation.
Je ne sais absolument pas par où commencer...
Je souhaiterais que le programme en question soit réalisé en C, en console, et qu'il obéisse de manière très simple du style :
if bonjour else salut
printf Bonjour
Pour le moment c'est uniquement ce que je demande. Une console, sur laquelle je pourrais entrer du texte, reconnu par tout un tas de variable prédéfinies.
Par la suite, si j'arrive à faire plus ou moins ce que je veux, j'aimerais pouvoir y ajouter quelques fonctionnalités plus "utiles" comme le fait de pouvoir utiliser l'heure etc.
Et vraiment plus tard, le fait de pouvoir utiliser un log pour répertorier tout ce que le bot n'a pas compris, et pouvoir ensuite l'ajouter à un dictionnaire séparé, plus facile à éditer.
Bref, beaucoup de "je veux" je sais, pour le moment tout ce que j'aimerais c'est une petite piste simple pour me lancer correctement. J'ai déjà vu des tonnes de tutos mais rien qui ne puisse vraiment me rendre la tâche plus simple...
Si je peux avoir une réponse (préenregistrée et alors ? =D) à un "bonjour", je serais déjà bien content ! On verra ensuite pour la création d'un dictionnaire et tout le reste !
Note : je précise que c'est inutile de me faire partager des liens de bots déjà "tout faits" etc. Je les connait probablement déjà, et le seul intérêt à faire un bot, c'est le créer. En tout cas pour moi. Alors s'il vous plaît, pas d'URL ! Sauf si ça peut m'aider bien sûr :)
En espérant recevoir de l'aide, merci à tous !
J'ai depuis longtemps un projet que j'aimerais réaliser, mais pas assez compétent pour faire quelque chose de correct hélas.
J'ai quelques notions en C, plutôt vagues (je comment ça fonctionne, déclarer des variables, tout ça tout ça...) mais je reste plus que novice dans le domaine.
C'est pourquoi je fait appel à tous ceux qui s'y connaissent bien mieux que moi pour m'aider à faire ce que je souhaite.
Le but serait de réaliser ce qu'on peut appeler un "tchat bot", c'est à dire un bot avec lequel on peut "discuter".
Je précise immédiatement que l'intérêt est plus que limité. Ce qui me motive c'est avant tout la réalisation de celui-ci, pas réellement son utilisation.
Je ne sais absolument pas par où commencer...
Je souhaiterais que le programme en question soit réalisé en C, en console, et qu'il obéisse de manière très simple du style :
if bonjour else salut
printf Bonjour
Pour le moment c'est uniquement ce que je demande. Une console, sur laquelle je pourrais entrer du texte, reconnu par tout un tas de variable prédéfinies.
Par la suite, si j'arrive à faire plus ou moins ce que je veux, j'aimerais pouvoir y ajouter quelques fonctionnalités plus "utiles" comme le fait de pouvoir utiliser l'heure etc.
Et vraiment plus tard, le fait de pouvoir utiliser un log pour répertorier tout ce que le bot n'a pas compris, et pouvoir ensuite l'ajouter à un dictionnaire séparé, plus facile à éditer.
Bref, beaucoup de "je veux" je sais, pour le moment tout ce que j'aimerais c'est une petite piste simple pour me lancer correctement. J'ai déjà vu des tonnes de tutos mais rien qui ne puisse vraiment me rendre la tâche plus simple...
Si je peux avoir une réponse (préenregistrée et alors ? =D) à un "bonjour", je serais déjà bien content ! On verra ensuite pour la création d'un dictionnaire et tout le reste !
Note : je précise que c'est inutile de me faire partager des liens de bots déjà "tout faits" etc. Je les connait probablement déjà, et le seul intérêt à faire un bot, c'est le créer. En tout cas pour moi. Alors s'il vous plaît, pas d'URL ! Sauf si ça peut m'aider bien sûr :)
En espérant recevoir de l'aide, merci à tous !
A voir également:
- Comment créer un bot informatique
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Le code ascii en informatique - Guide
- Comment créer un compte gmail - Guide
- Créer un lien pour partager des photos - Guide
8 réponses
slt si sa peut d'aider :
Pour commenser : réalise un Client/Server il y a plein de tuto qui explique comment utiliser les Socket
http://c.developpez.com/cours/sockets-c-cpp-demystifies/
Le site du zero ( Socket , transmission de flux,thread):
http://www.siteduzero.com/tutoriel-3-3293-les-sockets.html
voir aussi :
- les structure
- les pointeur
sa c'est pour la socket
puis avec un client basic lors d'une reception le flux est rediriger vers une function qui hash ce qu'il recoit ( après donner une AI au soft je laisse la main )
if recept == bonjour
Mess= "HEllO";
...
resend(&Mess)-> function qui renvoie le message au client
Pour commenser : réalise un Client/Server il y a plein de tuto qui explique comment utiliser les Socket
http://c.developpez.com/cours/sockets-c-cpp-demystifies/
Le site du zero ( Socket , transmission de flux,thread):
http://www.siteduzero.com/tutoriel-3-3293-les-sockets.html
voir aussi :
- les structure
- les pointeur
sa c'est pour la socket
puis avec un client basic lors d'une reception le flux est rediriger vers une function qui hash ce qu'il recoit ( après donner une AI au soft je laisse la main )
if recept == bonjour
Mess= "HEllO";
...
resend(&Mess)-> function qui renvoie le message au client
seo610
Messages postés
596
Date d'inscription
Statut
Membre
Dernière intervention
102
C'est quoi le lien avec les sockets? C'est pas une application qui utilise le réseau qu'il veut faire.
Ca l'air vraiment chiant à faire, surtout si tu dis que tu n'y connais que dalle et que ça n'as aucun sens
Commence par comprendre le C avant de faire quelque chose comme ça en C. Tu vas juste te perdre.
if bonjour else salut printf Bonjour
Commence par comprendre le C avant de faire quelque chose comme ça en C. Tu vas juste te perdre.
ltfx >> Merci mais je cherche juste à faire un programme type console, sans faire intervenir aucune notion de réseau à aucun moment.
Par la suite ça pourrait être une évolution envisageable, mais uniquement quand j'aurais au moins fait quelque chose de fonctionnel =D
seo610 >> Logiquement ça ne devrait pas être particulièrement compliqué à réaliser...
La création du "dictionnaire" elle, sera fastidieuse, c'est évident.
Mais créer un petit programme en console qui renvoie le texte X si le texte Y est tapé n'a rien d'insurmontable. Même pour quelqu'un qui n'est pas expert en la matière.
En tout cas si quelqu'un à d'autres suggestions merci :)
Par la suite ça pourrait être une évolution envisageable, mais uniquement quand j'aurais au moins fait quelque chose de fonctionnel =D
seo610 >> Logiquement ça ne devrait pas être particulièrement compliqué à réaliser...
La création du "dictionnaire" elle, sera fastidieuse, c'est évident.
Mais créer un petit programme en console qui renvoie le texte X si le texte Y est tapé n'a rien d'insurmontable. Même pour quelqu'un qui n'est pas expert en la matière.
En tout cas si quelqu'un à d'autres suggestions merci :)
J'ai dit "bot".
"chat bot" même.
Aucun rapport avec une intelligence artificielle =/
C'est quand même fou de voir que sur les forums, tout particulièrement les forums "informatique" les gens ont besoin de se sentir valorisés en prenant des tournures pompeuses =D
Bref, pour répondre à tes questions : Je n'ai pas besoin de lire un bouquin sur l'IA puisque je ne veux pas faire d'IA.
Et je connais un minimum la programmation. Donc je pense être à même de faire un programme qui n'a "aucun intérêt".
Après tout, du moment que ça m'amuse, quel intérêt à ce qu'il y ai de l'intérêt ?
"chat bot" même.
Aucun rapport avec une intelligence artificielle =/
C'est quand même fou de voir que sur les forums, tout particulièrement les forums "informatique" les gens ont besoin de se sentir valorisés en prenant des tournures pompeuses =D
Bref, pour répondre à tes questions : Je n'ai pas besoin de lire un bouquin sur l'IA puisque je ne veux pas faire d'IA.
Et je connais un minimum la programmation. Donc je pense être à même de faire un programme qui n'a "aucun intérêt".
Après tout, du moment que ça m'amuse, quel intérêt à ce qu'il y ai de l'intérêt ?
Bonjour,
Alors la trame est relativement simple :
J'ai fait ça à l'arrache, il y a sûrement des fautes d'inattention. Les entêtes, je te laisse les mettre (stdio.h, stdlib.h et string.h). Mais le principe reste correct. Après, pour plus d'évolution, je te conseille de mettre dans un fichier. Genre :
Bonjour : Coucou
Ca va ? : Oui et vous ?
Ainsi, dans ton programme, tu n'as plus qu'à lire le fichier. Avant les ":" (trouve un meilleur séparateur), il s'agit de la condition. Et après les ":", il s'agit de l'action.
Une fois que tu auras cette structure. Tu pourras t'amuser, à mettre des "Ecrire("Coucou")", "OP(pseudo))".
Cdlt,
Alors la trame est relativement simple :
static void videBuffer(void) { int c; while ((c=getchar()) != '\n' && c != EOF); } int main(void) { char chaine[255]; char *p; printf("Pseudo : "); fflush(stdout); if (fgets(chaine, sizeof chaine, stdin)==NULL) { fputs("Erreur\n", stderr); return EXIT_FAILURE; } p=strchr(chaine,'\n'); if (p != NULL) { *p='\0'; else { videBuffer(); } if (strcmp(chaine, "Bonjour")==0) puts("Coucou"); else if ... ... return 0; }
J'ai fait ça à l'arrache, il y a sûrement des fautes d'inattention. Les entêtes, je te laisse les mettre (stdio.h, stdlib.h et string.h). Mais le principe reste correct. Après, pour plus d'évolution, je te conseille de mettre dans un fichier. Genre :
Bonjour : Coucou
Ca va ? : Oui et vous ?
Ainsi, dans ton programme, tu n'as plus qu'à lire le fichier. Avant les ":" (trouve un meilleur séparateur), il s'agit de la condition. Et après les ":", il s'agit de l'action.
Une fois que tu auras cette structure. Tu pourras t'amuser, à mettre des "Ecrire("Coucou")", "OP(pseudo))".
Cdlt,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Un consei : Programme en batch, le language est très simple a aprendre est correspond exactement au type de programme que tu veux faire.
Pour faire ton programme, il va falloire que ton programme reconaisse ce que tu lui dit pour pouvoire y répondre, ca va etre compliquer car sa sapelle de l'intelligence artificielle.
Pour faire ton programme, il va falloire que ton programme reconaisse ce que tu lui dit pour pouvoire y répondre, ca va etre compliquer car sa sapelle de l'intelligence artificielle.
fiddy >> Merci beaucoup !
Je suis en train d'étudier ça, c'est exactement dans l'esprit de ce que je recherchais =)
Je suis en train d'étudier ça, c'est exactement dans l'esprit de ce que je recherchais =)
Pour créer un dictionnaire qui contienne les réponses/questions je ne pense pas avoir le niveau pour le moment.
Par contre, en restant sur cette base, quelle boucle utiliser pour toujours en revenir à la fonction main ?
Pour le moment, à chaque réponse, le programme s'arrête, normal.
Mais j'ai un peu de mal à mettre ma boucle correctement pour pouvoir faire une nouvelle saisie après la première.
Tout ce que j'arrive à faire c'est faire répéter à l'infini la réponse =D
Peut-être que ce n'est pas une boucle infinie qu'il faut faire ? =/
Par contre, en restant sur cette base, quelle boucle utiliser pour toujours en revenir à la fonction main ?
Pour le moment, à chaque réponse, le programme s'arrête, normal.
Mais j'ai un peu de mal à mettre ma boucle correctement pour pouvoir faire une nouvelle saisie après la première.
Tout ce que j'arrive à faire c'est faire répéter à l'infini la réponse =D
Peut-être que ce n'est pas une boucle infinie qu'il faut faire ? =/