Accueil > > > PENDU EN @WINDOW
PENDU EN @WINDOW
Information sur la source
Description
Voila il s'agis du célebre du pendu version mirc script :)
pour le lancer:
/pendu
pour le fermer: /pendu close
ou alors: quit dans la fenetre du pendu
configuration:
creez un fichier texte a la racine de mirc ( //echo -a $mircdir si vous ignorez ou c'est )
nomez le: pendu.dico.txt
fonctionement:
Une ligne dans le fichier = 1 mot
le script choisis une ligne au hazzard dans le fichier texte
vous pouvez changer le chemin du fichier texte en éditant la variable %file = pendu.dico.txt
example: %file = c:\dico\dictionaire.txt
pour lancer une partie:
/pendu (ouvre la fenetre de jeu)
new
par defaut le nombre de tentatives infructueuses pour un mot est de 8, pour le changer éditez la variable %max
Source
- 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
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
Conclusion
voila je sais que je ne réinvente pas l'eau chaude la mais on me l'avais demandé :) et je voulais voir comment j'aurais fais ca :p
Historique
- 09 novembre 2006 12:40:17 :
- Correction de petits bugs
Ajout d'une fonction d'édition du fichier de mots aléatoirs depuis le script
Optimisation du code
- 09 novembre 2006 12:50:02 :
- correction dune faute de frape
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Une aide pour un tablo [ par HatMan ]
On *:open:*:{ /msg $nick 15,0[14,0Répondeur15,0]1,0 $1- /tst aline @pvmsg 4 $+ $left($nick,1) $+ 14 $+ $right($nick,$calc($len($nick)-1))
Que dois je faire dites moi? [ par VirusA ]
Premierement bonjour, je vient a peine de decouvrir se site et j'avoue que non seulement j'en suis fort heureux mais que je le trouve tres co
@window; dlick [ par wbr ]
Salut, je voudrais savoir comme je peux faire pour que, si dans une @window je click 2 fois sur la même ligne, elle s'éfface.a+
les notices [ par HatMan ]
jaimerai ke les notice dune personne aille dans une window et ke dans la windowje pensai aon *:notice:*:{ halt window @notice aline @notice $
Les @window [ par Cron0s ]
Bha voila jaimerais savoir si on peut configurzer les @window genre mettre une image de fond la taille kon veut et tout et tout merci
code débutant [ par rattlehead ]
Bonjour,j'ai écrit ce code dans la partie remote mais ca ne fonctionne pas, quelqu'un peut-il m'éclairer?on *:TEXT:*:*:{ ;si le texte me concerne
jeu pour bot ? maillon faible ? [ par MeF ]
voilou j'ai déjà eu l'occasion de jouer sur irc au maillon faible.Yavait des sons qui accompagnaient le jeu, c'étaient bien sympathique, avec de nombr
Recherche, qu'en pensez-vous ? [ par ScreaM ]
Voici une p'tite idée que je viens d'avoir. Le but serait de reproduire le jeu du maillon faible mais sur un canal irc qui pourrait s'appeller #maillo
@window dans dialog ? [ par Epsi76 ]
Alors voilà:Je voudrais savoir si c possible d'incorporer une @window dans un dialog. Si oui, comment svp ?Thx d'avance :)
Les draw dans la window [ par Tirane ]
Bonjour, je voudrais un cours sur les draw pour la windowMerci d'avance !Tirane
|
Derniers Blogs
[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : ON RAWMODERE : ON RAWMODE par WorldDMT
Cliquez pour lire la suite par WorldDMT AVERTISSMENT ET KIKKAVERTISSMENT ET KIKK par mouhcine951990
Cliquez pour lire la suite par mouhcine951990
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|