UN PENDU SUR IRC POUR JOUER À PLUSIEUR !

cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008 - 6 juin 2006 à 11:45
 papi86 - 10 oct. 2014 à 20:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37977-un-pendu-sur-irc-pour-jouer-a-plusieur

bonjour impecable ce truc marche nikel juste quelque fautes d'orthographe qui l'empêche de fonctionné mais sinon 10/10 pour moi merci a l'auteur
cs_Hisoka51 Messages postés 3 Date d'inscription lundi 21 novembre 2011 Statut Membre Dernière intervention 22 novembre 2011
22 nov. 2011 à 10:48
Pour ma part il fonctionne qu'à moitié, si je ne trouve pas le mot, il me marque "le mot était:" et rien d'autre. Sinon quant on ne donne pas la bonne lettre rien ne l'indique, ça serait pas mal ;)
La commande !pendu ne fonctionne pas, je dois toujours moi-même le lancer, ce qui n'est pas pratique en cas d'absence.

Sinon très bon script et merci tout de même ! J'espère que vous pourrez résoudre ces p'tits problèmes.
MRVOLKANO Messages postés 8 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 2 mai 2010
18 mars 2009 à 14:59
allo
jais installer le pendu comme est supposer mais je tappe !pendu mais ya rien qui marche j'aimerais qu'on m'aide S.V.P parce-que ya l'air pas pir :)
rastaman33 Messages postés 1 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 21 juin 2008
21 juin 2008 à 11:01
bonjour
je n arrive pas a le faire fonctionnais le jeu du pendu multi joueur pourrais t on maider svp je suis assez nul merci
Utilisateur anonyme
24 nov. 2007 à 18:39
Sa aurait été mieu que tu mette la source dans une remote et que tu la poste sous zip ... 251 ligne ou il faut enlever les # devant

Exemple:

# on 1:KICK:%chandujeu: {# if (%pendu on && $knick %nom && %m == off) {
# msg %chandujeu 3,15 Dommage, le pendu est fini. Pour relancer, tapez 4!pendu
# unset %pendu
# unset %lettrecite*
# unset %m
# unset

Et
# ###############################
# ### ###
# ### A COPIER DANS UN REMOTE ###
# ### ###
# ###############################

N'est pas indispensable. Tu peut l'enlever

on 1:KICK:%chandujeu: {

Hein ???
on *:join:#salon:{
Sa n'aurait pas été plus simple =o
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
30 sept. 2007 à 13:34
ce qui serait cool c'est de lier le tout a un dictionnaire en ligne ou bien un fichier txt qui contienne la définition de tous les mots de la langue francaise pour éviter les conflit du genre "c'est pas francais ton mot" et peut-etre aussi faire un systeme de voice ou je sais pas trop quoi et un interchan serait super avec des mots diférent comme ca pas de triche

ciao j'essaie la remote de suite :D
Barsy Messages postés 13 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 12 février 2008
21 juin 2006 à 21:11
Je vois que mon script à pas mal de succès (je vous ai dit, je l'ai fait il y a deux ans et je n'avais pas de notion de programmation à l'époque, j'ai tout fait comme j'ai pu sans rien connaître). Désolé donc pour toutes les lignes en trop dans le code.

J'essaierai prochainement de vous sortir une version propre du pendu en prenant en compte toutes vos remarques

merci pour vos conseil ^^

Barsy
thomasworms Messages postés 12 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 20 juin 2006
20 juin 2006 à 18:38
euh ton truc est bizarre t code comme on 1:QUIT:{ ne serve strictement a rien
je vois ke le jeu beug tres bien

(06:37:21) <Service> PENDU (créé par Barsy)
(06:37:23) <Service> pour avoir les scores tapez !scorpendu
(06:37:25) <Service> début du pendu : ------
(06:37:27) <Service> vous pouvez donner une lettre ou un mot.
(06:37:31) <Service> Dommage, le pendu est fini. Pour relancer, tapez !pendu

donc il y a kelke petite erreur a remedié et enleve ton pseudo ds le jeu sa casse tt sa ^^ sinon sa va bonne idée de projet :)
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
11 juin 2006 à 12:13
j'te fai confiance ;p
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
11 juin 2006 à 12:10
erreur de ma part, ça serait plutôt var %bon = 1 dans ce cas
et effectivement, il ne faut pas tenir compte des majuscules
if ($regex(%tontexte,/^([a-z]+)$/i)) var %bon = 1

la position des parenthèses ne change rien dans les deux cas il me semble

j'ai inversé ^ et $ rofl ^^
dur les dimanches matin :p

j'ai testé, et c'est bon :)
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
11 juin 2006 à 12:05
ha oui c'est vrai isalpha etait plus adéquat, par contre pour le regex j'aurai plutot vu
if ($regex(%tontexte,/(^[a-z]+$)/i)) { var %bon 0 }
fin à vérifier...
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
11 juin 2006 à 11:57
c'est très mal codé :x
la première chose qu'on voit sur ce code c'est les 40 unset en ligne :x

passe par un alias pour unset toutes ces vars, ça t'évitera d'avoir 3x la même chose (comme l'a dit ISoKa)

unset %a
unset %b
unset %c
devient unset %a %b %c

tu devrais mettre un prefixe à tes variables, ça te donnerait unset %prefixe.*

/help /timer au lieu de mettre tout plein de /msg à la suite, ce qui va faire flooder le bot

/help /var au lieu de /set tout plein de variables qui ne seront pas utilisées plus tard

pour le code qu'ISoKa te propose : (déjà j'aurai plutôt dit que c'est if ($1 !isalpha))
if ($regex(%tontexte^,$[a-z]+^)) var %bon = 0
else var %bon = 1

if (%bon) correspondras au cas où %bon est correct, if (!%bon) au cas où %bon est faux

#############################
### ###
### A COPIER DANS ALIASES ###
### ###
#############################
pourquoi tu ne mets pas alias devant tes aliases ? ça permettrait de les coller dans le remote ...
(ISoKa t'a fait la remarque mais tu n'as pas encore corrigé :p)

Bref, assez mal codé, il y a beaucoup de choses à optimiser
Barsy Messages postés 13 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 12 février 2008
6 juin 2006 à 21:26
En fait, c'est un vieu code que j'avais tapé il y a quelques années. Et mon ignorance des fonctions m'a obligé à utiliser tous ces subterfuges avec les while.

Si j'ai le temps je retoucherai le code pour qu'il soit moins lourd.
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
6 juin 2006 à 12:00
ha oui j'oubliai quand on t'envoi le nouvo mot en pv tu fais encore une boucle sur chaque caractere poiur voir si c'est bien des lettres mais bon il existe des idetifieurs plus adéquat il me semble comme "isalpha" ainsi:
set %charcourrant 1
set %bon true
while (%charcourrant <= $len($$1)) {
if ($mid($lower($$1),%charcourrant,1) < a || $mid($lower($$1),%charcourrant,1) > z) {
set %bon false
}
inc %charcourrant
}
devient :
set %charcourrant 1 | set %bon true
if ($$1 !isalnum) { set %bon false }

c'est bien tu sembles maitrisé les while mais bon ser toi des identifieurs filé par mirc au lieu de toujours faire tes boucles, tu gagneras en vitesse d'execution, facilité de lecture, longueur de code et elegance.
voila :)
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
6 juin 2006 à 11:45
Bonjour,
-tu as plusieurs fois les mêmes actions sur diffirents evenements, quit,kick,part et meme dans ton code une fois si je me trompe pas, au lieu d'a chaque fois remettre tes lignes de code, crées toi un alias et appel l à chak fois tu gagnerais en concision
-tu fais un while sur les lettres du mot pour verif si la lettre donnée correspond si j'ai bien compri. ca marcherai pas plus simplement et sans while avec un "isin" ou "iswm" ou encore mieu en "regex" ? ca t'eviterais des boucles je pense, tu gagnerai encore en lignes de code.
-tu fais dans ton "on text" pleins de "set" que tu unset à la fin, un "var" serai peut etre plus approprié alors
-pour avoir ton code en entier dans un seul remote, pour eviter de se disperser, vu qu'il est pas super long et encore pas mal raccourcicable, tu pourais au lieu d'aller dans les alias tout simplement dans ton remote mettre "alias pendu {" et "alias finpendu {"
voili voilou :)
Rejoignez-nous