Débutez dans IRC/Créer un robot
Vous rencontrez sur les canaux de discussion plusieurs robots. Les plus connus sur le réseau Freenode sont ChanServ et NickServ. Une fois que vous serez un peu plus familiarisé avec l'environnement IRC, peut-être aurez-vous envie de vous lancer dans le développement d'un robot ("bot") capable de gérer votre salon !
Cette partie demande quelques notions en programmation Python. Avant de commencer, téléchargez et installez Python ainsi que les modules de Joel Rosdahl "irclib" et "ircbot" à cette adresse : http://sourceforge.net/projects/python-irclib/files/. Décompressez le fichier et lancez codice_1.
Le programme doit commencer par l'import des modules "irclib" et "ircbot". La programmation sera événementielle, c'est-à-dire qu'elle repose sur des événements : quand il se passe une action, on fait cela (quand un message est posté, alors on répond bonjour, par exemple). Vous devrez donc définir une méthode qui sera appelée par le programme quand l'événement se produira. Faites commencer vos programmes par codice_2. Vous aurez donc un code de ce type :
import irclib
import ircbot
class LeRobot(ircbot.SingleServerIRCBot):
 def on_pubmsg(self, serv, ev):
 #action lors de la publication d'un message
 def on_kick(self, serv, ev):
 #action lors d'un kick
Attention, pour que l'codice_3 fonctionne, veillez à enregistrer votre programme dans le même répertoire que codice_4 et codice_5
Quelques commandes.
Lors de la définition d'une méthode, celle-ci peut prendre plusieurs paramètres, comme codice_6 ou codice_7.
codice_6.
codice_6 est une instance, elle permet au robot de dialoguer avec le serveur, à la façon d'un client IRC classique comme Pidgin.
codice_11 : le robot rejoint un salon de discussion. Si celui-ci est protégé par un mot de passe, mettez celui-ci à la suite (codice_12).
codice_13 envoie un message sur un salon ou à une personne.
codice_14 permet de changer le pseudonyme du robot.
codice_15 renvoie le pseudonyme effectif du robot.
codice_16 envoie codice_17. Attention, codice_18 ne fonctionne pas avec tous les clients. Certains verront codice_19, d'autres verront codice_20, c'est pourquoi l'utilisation de codice_21 s'avère indispensable.
codice_22 envoie un message d'invitation à l'utilisateur codice_23.
codice_24 quitte le canal spécifié avec un message.
codice_25 déconnecte le robot.
Si le robot est opérateur, il peut utiliser :
codice_26 expulse un utilisateur du salon.
codice_27 change le mode du channel, par exemple codice_28. Le cumul des modes est autorisé : codice_29.
Exemples de code.
Robot de bar.
Ce très simple robot vous donne ce que vous lui demandez.
import irclib
import ircbot
class Bot(ircbot.SingleServerIRCBot):
 def __init__(self):
 ircbot.SingleServerIRCBot.__init__(self, [("irc.freenode.com", 6667)],
 "BotIRC", "Je suis un bot de bar.")
 def on_welcome(self, serv, ev):
 serv.join("#test-irc")
 def on_pubmsg(self, serv, ev):
 message = ev.arguments()[0]
 if "!botirc" in message or "!botIRC" in message:
 serv.privmsg("#test-irc", "et "+message[8:100] + " !") #fonction répéteur
if __name__ == "__main__":
 Bot().start()
Robot videur.
Ce robot, s'il est opérateur, expulse du salon l'utilisateur demandé.
import irclib
import ircbot
class Bot(ircbot.SingleServerIRCBot):
 def __init__(self):
 ircbot.SingleServerIRCBot.__init__(self, [("irc.freenode.com", 6667)],
 "BotIRC", "Je suis un bot videur.")
 def on_welcome(self, serv, ev):
 serv.join("#test-irc")
 def on_pubmsg(self, serv, ev):
 canal = ev.target()
 message = ev.arguments()[0]
 if message[8:12] == "kick":
 if message[13:100] == "BotIRC":
 serv.privmsg(canal, "Non mais ça va pas la tête ?!")
 else: 
 serv.kick(canal, message[13:100], "Prends garde, BotIRC est là")
if __name__ == "__main__":
 Bot().start()
Un robot inexpulsable.
import irclib
import ircbot
class Bot(ircbot.SingleServerIRCBot):
 def __init__(self):
 ircbot.SingleServerIRCBot.__init__(self, [("irc.freenode.com", 6667)],
 "BotIRC", "Je suis un bot invincible.")
 def on_welcome(self, serv, ev):
 serv.join("#test-irc")
 def on_kick(self, serv, ev):
 serv.join("#test-irc")
Ce robot est inexpulsable. En effet, si il est "kické", codice_30 le ramène immédiatement.

Implémentation d'algorithmes classiques
Le but de ce wikilivre est de donner et d'expliquer des implémentations d'algorithmes classiques dans différents langages de programmation.
Comme son , il doit notamment permettre de centraliser des fragments de code issus d'articles de Wikipédia.

Implémentation d'algorithmes classiques/Algorithmes de tri

Implémentation d'algorithmes classiques/Algorithmes de tri/Tri par sélection