Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 522 fois - Téléchargée 27 fois
alias pendu { var %win @pendu , %table = wbs.pendu if ($hget(%table)) hfree %table if ($window(%win)) window -c %win if ($1 != close) { window -e %win hmake %table pendu.help %win } } alias -l repchar return $+($iif($calc($2 -1) > 0,$mid($1,1,$calc($2 -1))),$3,$mid($1,$calc($2 +1))) alias -l xadd hadd $1- alias -l pget return $hget(wbs.pendu,$1-) alias -l wcolor return $+($chr(3),04,$1-,$chr(15)) alias -l pendu.help { var %win = $1 aline %win $wcolor(new) : Commence une nouvelle partie aline %win $wcolor(stop) : Arrete la partie en cour aline %win $wcolor(word) : Affiche le mot courant (celui que vous avez devoilé) aline %win $wcolor(clear) : Efface le contenu de la fenetre (termine aussis la partie) aline %win $wcolor(quit) : Ferme la fenetre aline %win $wcolor(help) : Affiche cette aide aline %win $wcolor(regles) : Affiche les regles du jeu } alias -l pclean { var %table = $1 hdel %table partie hdel %table word hdel %table try hdel %table mot } alias -l pendu.eval { if ($left($1,1) == /) return var %win = @pendu , %table = wbs.pendu , %max = 8 , %file = pendu.dico.txt aline %win $+($chr(3),09,$1-,$chr(15)) if ($1 == new) { if (!$pget(partie)) { xadd -m %table partie $ctime xadd %table mot $encode($read(%file),m) var %word = $str($chr(42),$len($decode($pget(mot),m))) xadd %table try 0 xadd %table word %word aline %win Une nouvelle partie vien d'etre lancée: %word } else aline %win Erreur: Une partie est deja en cours, impossible d'en demarer une nouvelle, faites $wcolor(stop) pour arreter la partie en cour puis recomencez. } elseif ($1 == stop) { if ($pget(partie)) { pclean %table aline %win Partie annulée. } else aline %win Erreur: Aucune partie en cours. } elseif ($1 == regles) { aline %win les regles sonts les suivantes: aline %win - Une seulle letre à la fois aline %win - Au bout de %max éssais vous êtes disqualifiées aline %win - Pour soumetre une letre il vous suffit de la tapper pendent une partie } elseif ($1 == word) { if ($pget(partie)) aline %win Mot: $pget(word) else aline %win Erreur: Aucune partie en cour. } elseif ($1 == clear) pendu elseif ($1 == quit) pendu close elseif ($1 == help) pendu.help %win elseif ($1 == liste) { if (!$2) { aline %win La commande list vous permet d'éditer la liste des mots du pendu les options disponibles sonts les suivantes: aline %win - read : vous permet de consulter la liste des mots (cela peu etre long sur de grandes listes) aline %win - add : Ajoute un mot fournis en parametre aline %win - edit : edite la liste avec le programe associé pour le type .txt aline %win - del : supprime le mot fournis en parametre de la liste aline %win syntaxe: $1 option parametre return } if ($2 == read) { .fopen pendu %file while ($fread(pendu)) aline %win $ifmatch .fclose pendu } elseif ($2 == edit) { if (!$exists(%file)) { aline %win Erreur: le fichier %file est introuvable return } aline %win Runing %file run %file } elseif ($2 == del) { if (!$3) aline %win Erreur: Vous devez spécifier un mot à supprimer: $1-2 mot elseif ($4) aline %%win Erreur: vous ne pouvez pas spécifier plus d'un mot, pour supprimez une phrase utilisez: $1-2 edit else { write -ds [ $+ [ $3 ] ] %file aline %win Le mot $3 à bien été supprimé. } } elseif ($2 == add) { if (!$3) aline %win Erreur: il manque un parametre: $1-2 mot else { write %file $3- aline %win le mot $3- à bien été ajouté } } } elseif ($len($1-) == 1) { if ($pget(partie)) { if ($1 !isin $decode($pget(mot),m)) { hinc %table try if ($pget(try) == %max) { aline %win Vous avez échoué ! aline %win La solution était: $decode($pget(mot),m) pclean %table return } aline %win La lettre $+(",$1,") N'est pas dans le mot mystere. aline %win Essais: $pget(try) aline %win Restants: $calc(%max - $pget(try)) } else { hinc %table times aline %win La letre $+(",$1,") est dans le mot mystere: var %word = $pget(word) , %real = $decode($pget(mot),m) , %n = $count(%real,$1) aline %win Il y à %n $1 dans le mot while (%n > 0) { var %word = $repchar(%word,$pos(%real,$1,%n),$1) dec %n } xadd %table word %word aline %win Mot: %word if (%word == %real) { aline %win Félicitation vous avez trouvé le mot !!! aline %win Il s'agissai bien de %real if ($pget(try)) aline %win Vous avez fait $pget(try) erreure(s) en le cherchant ! else aline %win Vous n'avez meme pas fait d'erreur en voulant le trouver !!! auriez vous triché ? .... pclean %table aline %win Faites $wcolor(new) pour demarer une nouvelle partie. } } } else aline %win Aucune partie en cour, tappez $wcolor(help) pour plus de rensseignements } else aline %win Erreur: Commande inconue } on *:input:@pendu:{ pendu.eval $1- } on *:exit:/if ($hget(wbs.pendu)) hfree wbs.pendu
7 nov. 2006 à 22:02
Faut faire gaffe pour le $decode (6.2 bloque d'origine, pensez à le débloquer)
Ca serai sympa que tu mette une liste de mots avec ;)
8 nov. 2006 à 00:14
meme si la c'est: //echo -a $decode($hget(wbs.pendu,mot),m)
c'est moin évident deja :)
pour la liste de mots je vais essayer d'en trouver une mais ca cour pas les rues apparement la
8 nov. 2006 à 19:35
new
Une nouvelle partie vien d'etre lancée:
Il faudrait pas que ce sois a nous de crée le fichier, sinon ca n'a pas trop d'interet puisqu'on connais les mots ( ou limite permettre d'en ajouté dans le fichié directement a partir de la win )
"aline %win $wcolor(help) : Affiche cette aide"
elseif ($1 == regles) {
Sympatique, les règles ne sont pas spécifié dans l'aide, faut fouinné pour savoir que l'on peux tappé règles :/
if ($pget(try)) aline %wil Vous avez fait $pget(try) erreure(s) en le cherchant !
%wil ?
il reste un / inutile sur le on exit et les fautes d'orthographe font méchament mal :(
Sinon c'est bien, quoique tu fait souvent des /hdel enchainé, pourquoi ne pas le mettre dans un alias ?
A quoi serve les tables $hget(wbs.pendu,times) et ctime ?
9 nov. 2006 à 12:09
pour "regle" c'est juste un oubli et %wil une mechante faute de frape, je corrige le script tout a leurs (je me leve la)
je vais aussis ajouoter une fonction pour editer la liste des mots, pour la liste "fournie" je ne pourais le faire que si j'en trouve une valable ce qui pour le moment n'est pas mon cas
hiers soir j'ai pas trop eu le temp de coder sur ce script car un pote m'a demandé de loader un script codé avec les pieds sur mon mirc... telement crasseu que j'ai craqué et édité le tout :s
9 nov. 2006 à 18:43
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.