Bonsoir à tous.
Les cartes collent entre elles... Peut-être qu"en les "talquant" elles glisseraient mieux.
Didier.
- pmdd aime ceci
Posté par Didier
- 15 mai 2018 - 09:29
Posté par Didier
- 08 février 2018 - 07:39
Bonjour à tous.
C'est un sujet qui m'interpelle.
J'ai consulté pas mal de sites pour en connaitre en peu plus sur les AI et consorts.
J'ai écrit 5 programmes en pur HTML/Javascript ( sans librairie complémentaires ) en essayant d'y inclure un maximum de commentaires.
( Ils ne sont probablement pas codés dans les règles de l'art mais ils fonctionnent comme je le souhaitais )
Je vous les propose ici en l'état :
_EvolutionGénétique
L'appli retrouve un message écrit.
_EvolutionGénétique.html 12,53 Ko
71 téléchargement(s)
_EvolutionGénétique2
Les individus apprennent à sauter quand il le faut.
_EvolutionGénétique2.html 26,44 Ko
77 téléchargement(s)
_EvolutionGénétique3
Un truc genre "Poissons/Nourriture/Requins" ou "Les Gentils petits nécureuils et leurs noisettes contre les méchants loups".
_EvolutionGénétique3.html 40,97 Ko
86 téléchargement(s)
_RéseauNeuronal
Au fil des cycles l'appli obtient de plus en plus souvent le résultat attendu.
_RéseauNeuronal.html 16,36 Ko
82 téléchargement(s)
_FourmiDeLangton
Ben... Une fourmi de Langton ( et son autoroute ).
_FourmiDeLangton.html 7,09 Ko
65 téléchargement(s)
Voili, voilà
Didier.
Posté par Didier
- 18 mars 2017 - 06:31
Bonjour à tous.
Voici ce que je propose en Python...
Code extrait et adapté du programme que j'utilise pour communiquer avec mon robot KRT1
Ca vaut ce que ça vaut et il existe certainement mieux mais ça fonctionne pas trop mal.
Didier.
(A bientôt, peut-être)
#!/usr/bin/env python # -*- coding: utf-8 -*- # Test d'un chatbot # Importation des librairies nécessaires et suffisantes import random import time #import os # Seulement si l'on veut utiliser le TTS... # OK avec Raspberry Pi > Linux Rasbian Pixel + Pico TTS # "Dé-commenter" les lignes #os.system("... # Initialisation des variables # Variables modifiables LeNom = "Crétin" # Nom du robot # Variables de réglages ColA = "\x1b[1;32;40m" # Couleur des messages d'actions : Vert ColK = "\x1b[1;36;40m" # Couleur des messages de KRT1 : Bleu ColM = "\x1b[1;31;40m" # Couleur de mes messages : Rouge ColX = "\x1b[1;30;40m" # Couleur des autres messages : Noir FCol = "\x1b[0m" # Fin de la coloration du message # Variables utilisées par le système ( NE PAS MODIFIER - Touche pas à ça p'tit con ! ) MessageEcrit = "" # Message vide MonMessage = "" # Message vide # Dictionnaire - Orthographe non respectée pour tenter de trouver un meilleur phrasé TTS... ReponsesAleatoires = ["Comment ?", "Avant peut-être, mais ça cétait avant", "Bain voyons", "Sai quand même pas très clair tout ça", "Cet aussi mon avis et je le partage", "Et puis quoi encore ?", "Indubitablement", "Jallais dire exactement la même chose", "Mais zencore ?", "Mais oui mais oui, moi aussi", "Mauvais choix, auto destruction dans 10, 9, 8, 7, boum, oupsss", "Plait-il ?", "Quoi ?", "Sacrebleu", "Saperlipopette", "Soyez un peu plus précis, jcomprends rien à cque vous dites", "Tiens donc", "Tout tà fait", "Vous allez bien ?", "Haahaahaa, la grosse marave"] ReponsesPrevues = {"bonjou":"Bonjour à vous chef", # Les mots clés doivent être tronqués après le sixième caractère # Les mots clés avec accent(s) ne fonctionnent pas toujours # correctement, il convient donc de les éviter # Actions - Penser à mettre à jour la fonction Actions()... # Actions sur mots reconnus type ORDRE : "action KRT1" ou "KRT1 action" "+avanc":"Ok chef", "+avant":"Ok chef", "+recul":"OK chef", "+stop":"OK chef, oufff, Une petite pause ça fait du bien", "+top":"OK chef, oufff, Une petite pause ça fait du bien", "+appro":"OK chef, jarrive chef", "+viens":"OK chef, jarrive chef", "+repos":"OK chef, chef oui chef, merci chef", "+rompe":"OK chef, chef oui chef, merci chef", "+date":"La date...", "+heure":"L'heure...", # Actions sur un seul mot reconnu "bazoom":"Bazoum bazoum", "bazou":"Bazoum bazoum", "bazoum":"Bazoum bazoum", "zumba":"Bazoum bazoum", "binouz":"Une petite bière ?", "star":"En route vers linfini et au dela", "trek":"En route vers linfini et au dela", # Divers "chocol":"Jpeux pas, jai pas dbras", "con":"Meunon, meunon", "connar":"Sai celui qui dit qui y est, tralalalalère", "demain":"Demain est un autre jour, alors on verra", "desser":"Moi je suis plutot fromage que dessert", "faim":"Quand sai quon mange ?", "froid":"Faut se bouger un peu aussi", "fromag":"Fromage ou dessert ? il faut choisir", "gueule":"Quoi ma gueule, caisse quel a ma gueule, ta pas vula tienne ?", "humour":"Auto destruction dans 5, 4, 3, 2, 1, boum", "merde":"Je savais bien que vous diriez ça à un moment ou un autre", "pain":"Le pain, jle met sur la table hou dans ta gueule ?", "prout":"Proute proute ma chère, je my attendais", "salut":"Je vous salut également, a qui aije lhonneur ?", "soif":"Sai lheure de lapéro ?", "voyage":"Moi jaime bien les voyages, sai quand quon va ou ?", "yes":"Pas danglais avec moi, déjà quils nous ont brulé la Janne", "you":"Pas danglais avec moi, déjà quils nous ont brulé la Janne", "zut":"O la boulette"} # Les fonctions def Dialoguer(): global MonMessage global LeNom MonMessage = MessageEcrit print ColM + "Moi - " + MonMessage + ColX MonMessage = MonMessage.lower() LeNom = LeNom.lower() if MonMessage[0:len(LeNom)] == LeNom: MonMessage = "+" + MonMessage[len(LeNom)+1:len(MonMessage)] elif MonMessage[len(MonMessage)-len(LeNom):len(MonMessage)] == LeNom: MonMessage = "+" + MonMessage[0:len(MonMessage)-len(LeNom)-1] ReponseKRT1 = ChercherLaReponse(MonMessage) if ReponseKRT1: print ColK + "KRT1 - " + ReponseKRT1 + ColX #os.system("pico2wave -l fr-FR -w /dev/shm/krt1.wav " + "'" + ReponseKRT1 + "'") #os.system("omxplayer -o local /dev/shm/krt1.wav") # On va ensuite exécuter l'action demandée Actions() else: ReponseChoisie = random.randint(1, len(ReponsesAleatoires))-1 #os.system("pico2wave -l fr-FR -w /dev/shm/krt1.wav " + "'" + ReponsesAleatoires[ReponseChoisie] + "'") #os.system("omxplayer -o local /dev/shm/krt1.wav") print ColK + "KRT1 - " + ReponsesAleatoires[ReponseChoisie] + ColX ReponsesAleatoires[ReponseChoisie] = "" def ChercherLaReponse(MessageSaisi): global Mot MessageSaisi = MessageSaisi.lower() Mots = MessageSaisi.split() LesReponses = [] for Mot in Mots: if len(Mot) >= 6: Mot = Mot[0:6] if Mot in ReponsesPrevues: UneReponse = ReponsesPrevues[Mot] LesReponses.append(UneReponse) print print ColA + "xxxxxxxxxxxxxxxxxxxx" + ColX print ColA + "Mot reconnu = " + Mot + ColX print ColA + "xxxxxxxxxxxxxxxxxxxx" + ColX print if LesReponses: ReponseChoisie = random.randint(1, len(LesReponses))-1 return LesReponses[ReponseChoisie] return "" def Actions(): # Penser à mettre à jour le dictionnaire... Action = Mot if len(Action) >= 6: Action = Action[0:6] # Actions sur mots reconnus type ORDRE : "action KRT1" ou "KRT1 action" if Action == "+avanc" or Action == "+avant": print ColK + "-> Exécution de l'action..." + ColX elif Action == "+recul": print ColK + "-> Exécution de l'action..." + ColX elif Action == "+stop" or Action == "+top": print ColK + "-> Exécution de l'action..." + ColX elif (Action == "+appro" or Action == "+viens"): print ColK + "-> Exécution de l'action..." + ColX elif (Action == "+repos" or Action == "+rompe"): print ColK + "-> Exécution de l'action..." + ColX elif Action == "+date": Maintenant = time.localtime(time.time()) Date = "Nous sommes le " + time.strftime("%d/%m/%y") + ", chef" print ColK + "KRT1 - " + Date + ColX #os.system("pico2wave -l fr-FR -w /dev/shm/krt1.wav " + "'" + Date + "'") #os.system("omxplayer -o local /dev/shm/krt1.wav") elif Action == "+heure": Maintenant = time.localtime(time.time()) Heure = "Il est " + time.strftime("%H") + " heure " + time.strftime("%M") + ", chef" print ColK + "KRT1 - " + Heure + ColX #os.system("pico2wave -l fr-FR -w /dev/shm/krt1.wav " + "'" + Heure + "'") #os.system("omxplayer -o local /dev/shm/krt1.wav") # Actions sur un seul mot reconnu elif Action == "bazoom" or Action == "bazou" or Action == "bazoum" or Action == "zumba": print #os.system("omxplayer -o local static/BAZOOM.mp3") elif Action == "binouz": print #os.system("omxplayer -o local static/BIERE.mp3") elif Action == "star" or Action == "trek": print #os.system("omxplayer -o local static/STARTREK.mp3") # En route... while True : print ColA MessageEcrit = raw_input ("Ecrire le message... : ") print ColX Dialoguer()
Posté par Didier
- 11 février 2017 - 04:54