Voici ici un jeu en PicWin : le Blind Test
mIRC 6.17+ est obligatoire
Il consiste, comme la plupart d'entre vous le savent déjà, à deviner le titre et/ou le chanteur/groupe de la musique en cours de lecture, et ce le plus rapidement possible.
Les musiques doivent être stockées dans un fichier .m3u (qui peut-être créé avec Winamp par exemple).
Le jeu utilise les Tags, ça veut dire que si vous souhaitez faire un bon jeu, il faut que les flags soient clairs.
Par exemple, au lieu de Within.Temptation[2004]The.Silent.Force - 10_Within_Temptation_-_10_-_It's_The_Fear.mp3
Vous devriez avoir : Within Temptation - It's The Fear.
Pour régler les Tags avec Winamp, sélectionnez la musique puis faites "Alt + 3", ou alors clic droit, "View File Info"
Un conseil : évitez les _
Ce .m3u doit ensuite être enregistré dans le dossier mIRC (très important). Les chemins (menant vers les musiques) contenus dans ce .m3u dépendent de l'endroit où il est enregistré.
Plusieurs modes de jeu sont disponibles.
Ils permettent de modifier ce qu'on doit rentrer pour gagner la question.
Il y a donc à trouver :
Soit le titre, soit le chanteur/groupe
Le titre ET le chanteur/groupe
Uniquement le titre
Uniquement le chanteur/groupe
D'autres suppléments sont disponibles en fonction du mode activé.
Par exemple, plus de points seront accordées au titre.
Le titre peut-être donné dès le début de la question si ce qu'on cherche est le chanteur/groupe, et vice-versa
Tous les modes disposent d'une option Pendu, où la grille sera affichée dès le début. Vous pourrez y rentrer une lettre, mais aussi des mots.
Ce jeu dispose d'une aide intégrée (disponible via le menu)
Je suis d'accord que la PicWin n'est pas super super jolie, mais elle fonctionne très bien et est assez complète
Le système de score n'est qu'indicatif. Il peut néanmoins permettre de comparer le résultat de plusieurs personnes.
Tapez /blindtest pour lancer la PicWin
/blindtest uninstall pour effacer les fichiers en vue d'effacer le fichier (à faire manuellement)
Source / Exemple :
;**********
;Blind Test
;By ArKanis
;arkanis.eu
; V1.0
;**********
alias blindtest {
if ($1 == uninstall) {
if ($exists(BlindTest.txt)) .remove BlindTest.txt
if ($window(@Blind)) blind.close
else blind.freehash
remini Config.ini Blind
if (!$ini(Config.ini,0)) .remove Config.ini
echo -a Vous pouvez désormais décharger le code en tapant /unload -rs $qt($script)
}
elseif ($window(@Blind)) window -a @Blind
else {
if ($hget(Blind)) hfree Blind
window -aBCdg0k0pRz +dl @Blind -1 -1 600 400
drawrect -nr @Blind 0 1 0 0 600 400
hadd -m Blind Menu1 Fichier£Jouer-Charger une playlist-Fermer
hadd -m Blind Menu2 Options£Que répondre ?
hadd -m Blind Menu3 Aide£Comment jouer ?-A propos
blind.drawmenu $+(Fichier:,$hget(Blind,Menu1),¥Options:,$hget(Blind,Menu2),¥Aide:,$hget(Blind,Menu3))
hadd -m Blind Fichier blind.start¥blind.load¥blind.close
hadd -m Blind Options blind.config
hadd -m Blind Aide blind.help¥blind.credits
blind.menu.do blind.start
drawdot @Blind
}
}
alias -l blind.clear drawrect -fnr @Blind 16770790 1 1 16 598 383
;*****
;Close
;*****
on *:close:@Blind:{
if (($hget(Blind,Titre)) && (!$?!="Laisser la musique en cours ?")) splay stop
blind.freehash
}
alias -l blind.close {
if ($window(@Blind)) window -c @Blind
if ($window(@Blind.copy)) window -c @Blind.copy
if (($hget(Blind,Titre)) && (!$?!="Laisser la musique en cours ?")) splay stop
blind.freehash
}
alias -l blind.freehash {
var %l = $iif($1-,$1-,Blind BlindButtons BlindBF BlindEdits BlindEF BlindTest), %t = $numtok(%l,32)
while %t {
if ($hget($gettok(%l,%t,32))) hfree $ifmatch
dec %t
}
}
;****
;Menu
;****
menu @Blind {
sclick:blind.sclick $mouse.x $mouse.y
mouse:blind.mouse $mouse.x $mouse.y
Fermer:blind.close
}
alias -l blind.drawmenu {
if (!$window(@Blind)) return
drawrect -frn @Blind 16761024 1 1 1 598 15
drawline -nr @Blind 16728128 1 1 15 599 15
var %t = 1, %m = $numtok($1-,165), %x = 6
hadd -m Blind Menu $1-
while %t <= %m {
var %q = $gettok($1-,%t,165), %e = $gettok(%q,2-,58), %p = %x, %z = $gettok(%q,1,58)
if (!%e) var %z = $strip(%z)
drawtext -pnr @Blind $iif(%e,0,8421504) Tahoma 10 %x 2 %z
inc %x $calc($width($strip(%z),Tahoma,10) + 10)
hadd -m Blind $+(PosMenu,%t) $+(%p,-,%x)
inc %t
}
drawtext -nr @Blind 0 Tahoma 10 550 2 Blind Test
}
alias -l blind.menu {
if (!$1) return
var %h = $1-, %px = $hget(Blind,%h), %a = $hget(Blind,$remove(%h,Pos)), %x = $gettok(%px,1,45)
if ((!%a) || (!%x)) return
if ($hget(Blind ,SubmenuSel)) hdel Blind SubmenuSel
hadd -m Blind SubmenuNom $strip($gettok(%a,1,163))
var %ch = $gettok(%a,2-,163), %m = $gettok(%ch,0,45), %t = 1 ,%mpx = 0, %py = $calc(%m * 12 +5)
while %t <= %m {
if ($width($eval($gettok(%ch,%t,45),2),Tahoma,10) > %mpx) var %mpx = $ifmatch
inc %t
}
if (%mpx) {
inc %mpx 8
drawrect -rn @Blind 10961427 1 $calc(%x -3) 15 %mpx %py
drawrect -frn @Blind 16768192 1 $calc(%x -2) 16 $calc(%mpx -2) $calc(%py -2)
var %t = 1, %y = 18
while %t <= %m {
var %co = $iif($hget(Blind,Main) == $gettok($hget(Blind,$hget(Blind,SubmenuNom)),%t,165),8421504,0)
drawtext -nr @Blind %co Tahoma 10 %x %y $eval($gettok(%ch,%t,45),2)
inc %y 12
inc %t
}
hadd -m Blind Submenu %x 15 $calc(%mpx -4) $calc(%py -5) %ch
}
}
alias -l blind.checkmenu {
if (!$1) return
var %t = 1, %m = $hmatch(Blind,PosMenu*,0).item
while %t <= %m {
var %h = $hmatch(Blind,PosMenu*,%t).item, %px = $hget(Blind,%h)
if ($1 isnum %px) {
if (!$hget(Blind,MenuSel)) { blind.svg | hadd -m Blind MenuSel %h }
elseif ($hget(Blind,MenuSel) != %h) { blind.backup -n | hadd -m Blind MenuSel %h }
else return
hadd -m Blind Open 1
blind.menu %h
.break
}
inc %t
}
}
alias -l blind.menu.do {
if ($hget(Blind,Open)) hdel Blind Open
if ($hget(Blind,Submenu)) hdel Blind Submenu
if ($hget(Blind,MenuSel)) hdel Blind MenuSel
blind.freehash BlindButtons BlindBF BlindEdits BlindEF BlindLists
blind.clear
hadd -m Blind Main $1-
if ($1) $1-
if ($window(@Blind)) drawdot @Blind
}
;*******
;Submenu
;*******
alias -l blind.getsub {
if (!$2) return
var %y = 17, %t = 0
while %y < $1 {
inc %y 12
inc %t
}
if ((%t > $numtok($2,45)) || (!%t)) return
return %t $gettok($2,%t,45)
}
alias -l blind.submenu.redrawline {
if (!$4) return
if ($hget(Blind,Main) != $gettok($hget(Blind,$hget(Blind,SubmenuNom)),$3,165)) {
drawrect -frn @Blind 16768192 1 $calc($1 -1) $calc(17 + $3 * 12 - 11) $2 12
drawtext -rn @Blind 0 Tahoma 10 $1 $calc(17 + $3 * 12 - 11) $4-
}
hdel Blind SubmenuSel
}
;***************
;Sclick & Events
;***************
alias -l blind.sclick {
var %c
if ($hget(Blind,Submenu)) {
var %x = $1, %y = $2
tokenize 32 $ifmatch
if ($inrect(%x,%y,$1,$2,$3,$4)) {
var %i = $blind.getsub(%y,$5-), %t = $gettok(%i,1,32), %c = 1
if ((%c) && (%t)) blind.menu.do $gettok($hget(Blind,$hget(Blind,SubmenuNom)),%t,165)
}
elseif (!$inrect($1,$2,0,0,600,15)) blind.backup -n
tokenize 32 %x %y
}
if ((!%c) && ($inrect($1,$2,0,0,600,15))) blind.checkmenu $1
if (!$blind.edit(1,$1,$2)) {
if ($hget(Blind,EditSel)) {
.blind.edit $hget(BlindEdits,$ifmatch)
hdel Blind EditSel
}
}
var %res = $blind.id($1,$2), %id = $gettok(%res,1,32)
if (%id == 1) {
var %f = $sfile($mircdir *.m3u,Recherche d'un *.m3u,Sélectionner)
blind.edit $gettok($$hget(BlindEdits,3),1-5,32) %f
}
elseif (%id == 2) {
if ($remove($gettok($hget(BlindEdits,3),6-,32),$chr(124))) {
var %f = $ifmatch
if ((!$exists(%f)) || (!$regex(%f,\.m3u$))) drawtext -nr @Blind 0 Tahoma 12 125 345 Erreur : le fichier n'existe pas ou son extension n'est pas .m3u !
else {
writeini -n Config.ini Blind File %f
blind.menu.do blind.start
}
}
}
elseif (%id == 3) {
hadd -m Blind EditSel 3
if (!$timer(blind.edit)) blind.chariot
}
elseif (%id == 4) blind.start.test
elseif (%id == 5) blind.start.end
elseif (%id == 6) {
hadd -m Blind EditSel 6
if (!$timer(blind.edit)) blind.chariot
}
elseif (%id == 7) blind.start.ok
elseif (%id == 8) {
if (!$hget(Blind,Titre)) return
hinc -m Blind Indice
var %o = $regsubex($replace($hget(Blind,Titre),$chr(40),<,$chr(41),>,$+($chr(32),-,$chr(32)),¥),/(<[^>]+>)/g,)
var %a = $replace($gettok(%o,1,165),$chr(165),$+($chr(32),-,$chr(32))), %t = $replace($gettok(%o,2-,165),$chr(165),$+($chr(32),-,$chr(32)))
var %c = $hget(Blind,Indice)
if (((2 \\ %c) && (CG !isin $hget(Blind,Find))) || (T isin $hget(Blind,Find))) var %p = %a, %o = chanteur/groupe, %c = $calc(%c + 1)
else var %p = %t, %o = titre
if ($hget(Blind,Find)) var %c = $calc(%c * 4)
var %l = $left(%p,$round(%c,0))
blind.disp Voici le début du %o : %l
if ($len(%l) >= %c) blind.score -0.05
}
elseif (%id == 9) {
if (!$hget(Blind,Titre)) return
blind.disp Il s'agissait de $hget(Blind,Titre)
.blind.score -1
blind.start.test
}
elseif (%id == 10) {
var %q = $gettok(%res,2,32), %o = $gettok(T|CG T&CG T CG,%q,32)
if (%o) writeini -n Config.ini Blind Réponses %o
var %cg = chanteur/groupe, %t = titre, %a = Ne pas aider, %p = Pendu, %d = dès le début, %n = après une erreur
var %l = $gettok($+($str($+(Aucune distinction¥Priorité au %t,¥Priorité au %cg,¥,%p,£),2),%a,¥Donner le %cg %d,¥Donner le %cg %n,¥,%p,£,%a,¥Donner le %t %d,¥Donner le %t %n,¥,%p),%q,163)
var %nb = $iif($readini(Config.ini,Blind,%o),$ifmatch,1)
blind.list 11 270 75 255 64 $puttok(%l,$+(!,$gettok(%l,%nb,165)),%nb,165)
}
elseif (%id == 11) {
var %n = $gettok(%res,2,32), %o = $readini(Config.ini,Blind,Réponses)
if (%o) writeini -n Config.ini Blind %o %n
}
elseif (%id == 12) blind.score set
if ($window(@Blind)) drawdot @Blind
}
alias -l blind.subdraw {
var %i = $3-, %t = $gettok(%i,1,32), %c = $eval($gettok(%i,2-,32),2), %g = $hget(Blind,SubmenuSel)
if ((%g) && (%g != %t)) blind.submenu.redrawline $1 $2 %g $eval($gettok($gettok($hget(Blind,Submenu),5-,32),%g,45),2)
if (%c) {
if ($hget(Blind,Main) != $gettok($hget(Blind,$hget(Blind,SubmenuNom)),%t,165)) {
hadd -m Blind SubmenuSel %t
drawrect -frn @Blind 13731930 1 $calc($1 -1) $calc(17 + %t * 12 - 11) $2 12
drawtext -rn @Blind 16445674 Tahoma 10 $1 $calc(17 + %t * 12 - 11) %c
}
}
}
alias -l blind.mouse {
var %c
if ($hget(Blind,Submenu)) {
var %x = $1, %y = $2, %g = $hget(Blind,SubmenuSel)
tokenize 32 $ifmatch
if ($inrect(%x,%y,$1,$2,$3,$4)) {
var %i = $blind.getsub(%y,$5-), %c = $eval($gettok(%i,2-,32),2)
blind.subdraw $1 $3 %i
}
elseif (%g) blind.submenu.redrawline $1 $3 %g $eval($gettok($gettok($hget(Blind,Submenu),5-,32),%g,45),2)
tokenize 32 %x %y
}
if ((!%c) && ($inrect($1,$2,0,0,600,15)) && ($hget(Blind,Open))) blind.checkmenu $1
if ($blind.button(1,$1,$2)) noop
elseif ($hget(BlindBF,0).item) {
while $hget(BlindBF,1).item {
var %h = $hget(BlindBF,$ifmatch)
hdel BlindBF $ifmatch
blind.button %h
}
}
if ($blind.edit(1,$1,$2)) noop
elseif ($hget(BlindEF,0).item) {
while $hget(BlindEF,1).item {
var %h = $hget(BlindEF,$ifmatch)
hdel BlindEF $ifmatch
blind.edit %h
}
}
drawdot @Blind
}
;*************
;Save & Backup
;*************
alias -l blind.svg {
if (!$window(@Blind)) return
if (!$window(@Blind.copy)) window -BCdg0hk0npRz +d @Blind.copy -1 -1 600 400
drawcopy @Blind 0 0 600 400 @Blind.copy 0 0 600 400
}
alias -l blind.backup {
if (!$window(@Blind)) return
if (!$window(@Blind.copy)) return
if ($hget(Blind,Submenu)) hdel Blind Submenu
if ($hget(Blind,MenuSel)) hdel Blind MenuSel
if ($hget(Blind,Open)) hdel Blind Open
drawcopy $iif($1,$1) @Blind.copy 0 0 600 400 @Blind 0 0 600 400
}
;*************
;Blind Aliases
;*************
;ID
alias -l blind.start {
if (!$window(@Blind)) return
var %f = $readini(Config.ini,Blind,File)
if (($exists(%f)) && ($regex(%f,\.m3u$))) {
drawtext -nr @Blind 0 Tahoma 12 20 375 Fichier de données : %f
drawtext -nor @Blind 0 Tahoma 12 265 20 Ecran de jeu
var %c = $readini(Config.ini,Blind,Réponses), %p = soit le titre, soit le chanteur/groupe
if (%c == T&CG) var %p = le titre et le chanteur/groupe
elseif (%c == T) var %p = le titre
elseif (%c == CG) var %p = le chanteur/groupe
if (!%c) writeini -n Config.ini Blind Réponses T|CG
drawtext -nr @Blind 0 Tahoma 12 35 55 Le but du jeu est de trouver %p
blind.button 4 90 305 100 20 $iif($hget(Blind,Titre),Musique suivante,Commencer)
blind.button 5 410 305 100 20 Stopper
blind.edit 6 50 75 420 20
blind.button 7 475 75 80 20 Valider
blind.button 8 90 345 100 20 Aide
blind.button 9 410 345 100 20 Réponse
blind.button 12 250 355 100 20 Remettre à zéro
blind.score
drawrect -nr @Blind 0 1 50 105 505 183
drawrect -fnr @Blind 16777215 1 51 106 503 181
}
else blind.load
}
alias -l blind.score {
if ($1 == set) {
hadd -m Blind Score 0
hadd -m Blind Total 0
}
else hadd -m Blind Score $calc($hget(Blind,Score) + $1)
if ($hget(Blind,Main) != blind.start) return
if (!$show) hinc -m Blind Total
var %t = $round($hget(Blind,Score),2) pts en $hget(Blind,Total) $+(musique,$iif($hget(Blind,Total) > 1,s))
drawrect -fnr @Blind 16770790 1 10 330 580 15
drawtext -nr @Blind 0 Tahoma 12 $calc((600 - $width(%t,Tahoma,12))/2) 330 %t
}
alias -l blind.start.test {
if (!$window(@Blind)) return
splay stop
var %k = $hget(Blind,Titre), %t = %k, %f = $readini(Config.ini,Blind,File), %l = $lines(%f), %b = 0
if (%l <= 6) {
blind.disp Veuillez mettre plus de musiques dans votre .m3u !
blind.button 4 90 305 100 20 Arrêté
}
hadd -m BlindBF 4 90 305 100 20 Musique suivante
if ($hget(Blind,Main) == blind.start) {
blind.button 4 90 305 100 20 Musique suivante
blind.disp Une musique vient de commencer
}
hadd -m Blind Indice 0
drawdot @Blind
if (!%k) blind.score set 0
else .blind.score
while (((%k == %t) || (!$exists(%d))) && (%b <= 50)) {
var %r = $r(2,%l), %c = $read(%f,n,%r)
if ($left(%c,7) != #EXTINF) { dec %r | var %d = %c, %c = $read(%f,n,%r), %t = $gettok(%c,2-,44) }
else var %t = $gettok($read(%f,n,%r),2-,44), %d = $read(%f,n,$calc(%r +1))
if ($left(%c,7) != #EXTINF) var %d, %t = %k
inc %b
}
if (%b >= 50) {
blind.disp Aucune musique possédant un tag n'a pu être trouvée en 50 essais.
return
}
var %q = $readini(Config.ini,Blind,Réponses)
hadd -m Blind Réponses %q
write BlindTest.txt %t - %d
hadd -m Blind Titre %t
hadd -m Blind Zic $nopath(%d)
if ($hget(Blind,Find)) hdel Blind Find
if ($hget(Blind,Pendu2)) hdel Blind Pendu2
if ($hget(Blind,Pendu)) hdel Blind Pendu
var %o = $regsubex($replace($hget(Blind,Titre),$chr(40),<,$chr(41),>,$chr(91),<,$chr(93),>,$+($chr(32),-,$chr(32)),¥),/(<[^>]+>)/g,)
var %a = $replace($gettok(%o,1,165),$chr(165),$+($chr(32),-,$chr(32))), %t = $replace($gettok(%o,2-,165),$chr(165),$+($chr(32),-,$chr(32)))
if ($istok(T CG,%q,32)) {
if (%q == T) {
if ($readini(Config.ini,Blind,%q) == 2) blind.disp Le chanteur/groupe est %a
hadd -m Blind Find CG
}
else {
if ($readini(Config.ini,Blind,%q) == 2) blind.disp Le titre est %t
hadd -m Blind Find T
}
}
if ($readini(Config.ini,Blind,%q) == 4) {
if (%q == T) hadd -m Blind Pendu %t
elseif (%q == CG) hadd -m Blind Pendu %a
else hadd -m Blind Pendu %a - %t
var %r = $regsubex($hget(Blind,Pendu),/[a-z]/ig,_)
blind.disp $regsubex(%r,/(_+)/g,$+($str(_,$len(\t)),$chr(40),$len(\t),$chr(41)))
}
splay $shortfn(%d)
hadd -m Blind Ticks $ticks
}
alias -l blind.start.end {
splay stop
if ($hget(Blind,Titre)) hdel Blind Titre
hadd -m BlindBF 4 90 305 100 20 Reprendre
blind.button 4 90 305 100 20 Reprendre
}
alias -l blind.start.ok {
if (!$window(@Blind)) return
var %i = $hget(Blind,EditSel), %c = $hget(BlindEdits,%i), %e = $replace($remove($gettok(%c,6-,32),$chr(124)),$chr(165),$chr(32))
hadd -m BlindEdits %i $gettok(%c,1-5,32) $chr(124)
blind.edit $hget(BlindEdits,%i)
if (%e) {
var %o = $regsubex($replace($hget(Blind,Titre),$chr(40),<,$chr(41),>,$+($chr(32),-,$chr(32)),¥),/(<[^>]+>)/g,)
var %a = $replace($gettok(%o,1,165),$chr(165),$+($chr(32),-,$chr(32))), %t = $replace($gettok(%o,2-,165),$chr(165),$+($chr(32),-,$chr(32)))
var %q = $hget(Blind,Réponses), %x = $calc(($ticks - $hget(Blind,Ticks))/1000), %ticks = en $+($round(%x,2),s)
var %sc = $calc(15 / (%x * ($hget(Blind,Indice) * 0.5 +1)))
if ($hget(Blind,Pendu)) {
if (%e isin $hget(Blind,Pendu)) {
if ($hget(Blind,Pendu2)) var %r = $ifmatch
else var %r = $replacex($regsubex($hget(Blind,Pendu),/[a-z]/ig,_),+,\+)
var %p = $pos($hget(Blind,Pendu),%e,0)
while %p {
var %s = $calc($pos($hget(Blind,Pendu),%e,%p) -1), %m = $+(/^,$left(%r,%s),$chr(40),$str(.,$len(%e)),$chr(41),/i), %r = $regsubex(%r,%m,$+($left(%r,%s),%e))
dec %p
}
if (%r != $hget(Blind,Pendu2)) {
blind.disp Pendu : %r
hadd -m Blind Pendu2 %r
}
if ($pos($hget(Blind,Pendu),_,0) == $pos(%r,_,0)) {
blind.disp Bravo, vous avez réussi ce pendu !
blind.disp Il s'agit de %a - %t
blind.start.test
.blind.score %sc
}
elseif ($hget(Blind,Réponses) == T|CG) {
var %r = $replace($hget(Blind,Pendu2),$+($chr(32),-,$chr(32)),¥)
var %a2 = $gettok(%r,1,165), %t2 = $replace($gettok(%r,2,165),2-,165),$chr(165),$+($chr(32),-,$chr(32))), %w
if (%a2 == %a) {
blind.disp Bravo, vous avez trouvé le chanteur/groupe %ticks
if ($readini(Config.ini,Blind,%q) == 3) blind.score %sc
var %w = 1
}
elseif (%t2 == %t) {
if ($readini(Config.ini,Blind,%q) == 2) blind.score %sc
blind.disp Bravo, vous avez trouvé le titre %ticks
var %w = 1
}
if (%w) {
blind.disp Il s'agit de %a - %t
blind.start.test
.blind.score %sc
}
}
}
}
elseif (%q = T&CG) {
if (%e isin %a) {
if ((%e == %a) && (CG !isin $hget(Blind,Find))) {
blind.disp Vous avez trouvé le chanteur/groupe %ticks
if ($hget(Blind,Find)) {
blind.disp Il s'agit de %a - %t
blind.start.test
.blind.score %sc
}
else {
blind.score $iif($readini(Config.ini,Blind,%q) == 3),$calc(%sc *2),%sc)
hadd -m Blind Find CG
blind.disp Il vous reste encore le titre à trouver !
}
}
else blind.disp Vous venez de trouver une partie du chanteur/groupe : %e
}
elseif ((%e isin %t) && (T !isin $hget(Blind,Find))) {
if (%e == %t) {
if ($hget(Blind,Find)) {
blind.disp Bravo ! Vous avez trouvé le titre %ticks
blind.disp Il s'agit de %a - %t
.blind.score %sc
blind.start.test
}
else {
blind.score $iif($readini(Config.ini,Blind,%q) == 2),$calc(%sc *2),%sc)
blind.score %sc
blind.disp Il vous reste encore le chanteur/groupe à trouver !
hadd -m Blind Find T
}
}
else blind.disp Vous venez de trouver une partie du titre : %e
}
else {
blind.disp %e n'est ni dans le titre, ni dans le nom du chanteur/groupe
.blind.score
}
}
elseif (%q == T) {
if (%e == %t) {
blind.disp Bravo ! Vous avez trouvé le titre : %t
blind.disp Il s'agit de %a - %t
.blind.score %sc
blind.start.test
}
elseif (%e isin %t) blind.disp Vous avez trouvé une partie du titre : %e
else blind.disp %e n'est pas dans le titre !
if (!$hget(Blind,Find)) {
hadd -m BlindFind CG
if ($readini(Config.ini,Blind,OptionT) == 3) blind.disp Le chanteur/groupe est %a
}
}
elseif (%q == CG) {
if (%e == %a) {
blind.disp Bravo ! Vous avez trouvé le chanteur/groupe : %a
blind.disp Il s'agit de %a - %t
.blind.score %sc
blind.start.test
}
elseif (%e isin %a) blind.disp Vous avez trouvé une partie du chanteur/groupe : %e
else blind.disp %e n'est pas dans le chanteur/groupe !
if (!$hget(Blind,Find)) {
hadd -m BlindFind T
if ($readini(Config.ini,Blind,%q) == 3) blind.disp Le titre est %t
}
}
else {
if (%e isin %a) {
if (%e == %a) {
blind.disp Bravo ! Vous avez trouvé le chanteur/groupe : %a %ticks
blind.disp Il s'agit de %a - %t
blind.start.test
.blind.score %sc
}
else blind.disp Vous venez de trouver une partie du chanteur/groupe : %e
}
elseif (%e isin %t) {
if (%e == %t) {
blind.disp Bravo ! Vous avez trouvé le titre : %t %ticks
blind.disp Il s'agit de %a - %t
.blind.score %sc
blind.start.test
}
else blind.disp Vous venez de trouver une partie du titre : %e
}
else {
blind.disp %e n'est ni dans le titre, ni dans le nom du chanteur/groupe
.blind.score
}
}
}
drawdot @Blind
}
alias -l blind.load {
if (!$window(@Blind)) return
blind.button 1 470 195 100 20 Parcourir
blind.button 2 250 235 100 20 Sélectionner
blind.edit 3 50 195 415 20 $readini(Config.ini,Blind,File)
drawtext -nr @Blind 0 Tahoma 12 178 100 Indiquez le chemin menant à un fichier .m3u
drawtext -nr @Blind 0 Tahoma 12 191 120 Ce .m3u contient une liste de musiques
drawtext -nr @Blind 0 Tahoma 12 54 140 Veuillez vous assurer que les Tags sont corrects (propres) avec un logiciel tel que Winamp
}
alias blind.config {
if (!$window(@Blind)) return
drawtext -nr @Blind 0 Tahoma 12 24 45 Quelle partie de la musique faut-il donner ou sous quelle forme ?
var %o = $readini(Config.ini,Blind,Réponses)
var %l = Titre ou Chanteur/Groupe¥Titre et Chanteur/Groupe¥Titre¥Chanteur/Groupe, %g = $iif($findtok(T|CG T&CG T CG,%o,1,32),$ifmatch,1)
blind.list 10 40 75 155 64 $instok($deltok(%l,%g,165),$+(!,$gettok(%l,%g,165)),%g,165)
var %cg = chanteur/groupe, %t = titre, %a = Ne pas aider, %p = Pendu, %d = dès le début, %n = après une erreur
var %l = $gettok($+($str($+(Aucune distinction¥Priorité au %t,¥Priorité au %cg,¥,%p,£),2),%a,¥Donner le %cg %d,¥Donner le %cg %n,¥,%p,£,%a,¥Donner le %t %d,¥Donner le %t %n,¥,%p),%g,163)
var %nb = $iif($readini(Config.ini,Blind,%o),$ifmatch,1)
blind.list 11 270 75 255 64 $puttok(%l,$+(!,$gettok(%l,%nb,165)),%nb,165)
drawtext -nr @Blind 0 Tahoma 12 137 255 Note : les changements s'opèreront à la prochaine musique
}
alias -l blind.help {
if (!$window(@Blind)) return
drawtext -nor @Blind 0 Tahoma 12 286 20 Aide
var %o = drawtext -nr @Blind 0 Tahoma 12 40
%o 50 Le BlindTest consiste à trouver le titre/chanteur/groupe des musiques en cours de lecture
%o 70 Ce jeu nécessite un .m3u (c'est en fait une liste de musiques)
%o 90 Pour en créer une, lancez Winamp (ou un autre logiciel de lecture de musiques)
%o 110 Assurez vous que les tags sont bien remplis (et propre). Les _ sont déconseillés
%o 130 Le jeu dépend de ces tags. Les réponses seront introuvables s'ils ne sont pas propres
%o 150 Une fois votre liste prête, enregistrez la au format m3u et placez la dans votre dossier mIRC
%o 170 S'il n'est pas dans votre dossier mIRC, quelques musiques pourraient être injouables
%o 190 En effet, le chemin des musiques dépend de l'endroit où est enregistré le .m3u
%o 210 Chargez le .m3u à l'aide de la PicWin puis configurez le jeu
%o 230 Les différentes options permettent de pouvoir répondre ce que l'on veut à savoir :
drawtext -nr @Blind 0 Tahoma 12 50 250 titre, artiste, les deux, un des deux
%o 270 Un supplément est disponible en fonction du mode
%o 290 Donner une priorité revient à accorder plus de points si l'on trouve le champ indiqué
%o 310 Le pendu affiche le mot masqué, et fonctionne comme un vrai pendu
%o 330 Vous pouvez donner des lettres mais aussi des mots entiers
%o 370 Je vous souhaite bonne chance avec ce Blind Test :)
}
alias -l blind.credits {
if (!$window(@Blind)) return
drawtext -nor @Blind 0 Tahoma 12 272 20 A propos
drawtext -nr @Blind 0 Tahoma 12 40 85 Jeu codé et imaginé par ArKanis (08/2006)
drawtext -nr @Blind 0 Tahoma 12 40 105 Cette PicWin fait partie de l'add-on PicWins disponible avec Script-ArKanis
drawtext -nr @Blind 0 Tahoma 12 40 125 Plus d'infos, codes, ... www.arkanis.eu
drawtext -nr @Blind 0 Tahoma 12 40 165 Merci à mes testeurs Wims et Damon
drawtext -pnr @Blind 0 Tahoma 12 40 205 Contact :
drawtext -nr @Blind 0 Tahoma 12 50 225 Mail : arkanisfr@free.fr
drawtext -nr @Blind 0 Tahoma 12 50 245 IRC : #arkanis @Quakenet
drawtext -nr @Blind 0 Tahoma 12 40 285 Merci de me contacter si vous trouvez un bug
drawtext -nr @Blind 0 Tahoma 12 40 305 N'hésitez pas à me contacter si vous avez des questions
}
;****
;Draw
;****
alias -l blind.button {
if (!$window(@Blind)) return
var %g = 1, %r = ^[0-9]+ [0-9]+ [0-9]+$
if (!$regex($1-3,%r)) return
if ($isid) {
var %x = $2, %y = $3, %t = $hget(BlindButtons,0).item
while %t {
tokenize 32 $hget(BlindButtons,%t).data
if ($inrect(%x,%y,$2,$3,$4,$5)) break
dec %t
}
if (!%t) var %g = 0
else hadd -m BlindBF $1 $1-
}
if (%g) {
if (!$regex($3-5,%r)) return
hadd -m BlindButtons $1 $1-
drawrect -nr @Blind $iif($isid,0,16742520) 1 $2-5
drawrect -fnr @Blind $iif($isid,16737380,16757940) 1 $calc($2 +1) $calc($3 +1) $calc($4 -2) $calc($5 -2)
if ($6-) drawtext -nr @Blind $iif($isid,16777215,0) Tahoma 12 $calc($2 + ($4 - $width($6-,Tahoma,12))/2) $calc($3 + 3) $6-
return $1
}
}
alias -l blind.edit {
if (!$window(@Blind)) return
var %g = 1, %r = ^[0-9]+ [0-9]+ [0-9]+$, %o
if (!$regex($1-3,%r)) return
if ($isid) {
var %x = $2, %y = $3, %t = $hget(BlindEdits,0).item
while %t {
tokenize 32 $hget(BlindEdits,%t).data
if ($inrect(%x,%y,$2,$3,$4,$5)) break
dec %t
}
if (!%t) var %g = 0
else hadd -m BlindEF $1 $1-
}
if (%g) {
if (!$regex($3-5,%r)) return
hadd -m BlindEdits $1 $1-5 $iif($chr(124) !isin $6-,$+($6-,$chr(124)),$6-)
if ($hget(BlindEF,$1)) var %o = 1
drawrect -nr @Blind $iif(%o,0,16777215) 1 $2-5
drawrect -fnr @Blind $iif(%o,16737380,16755370) 1 $calc($2 +1) $calc($3 +1) $calc($4 -2) $calc($5 -2)
var %re = $replace($remove($6-,$chr(124)),$chr(165),$chr(32))
if ((%re) && (%re != $chr(32))) drawtext -nr @Blind $iif(%o,16777215,0) Tahoma 12 $calc($2 +4) $calc($3 + 3) %re
if (($isid) || ($show)) noop $blind.chariot($1)
return $1
}
}
alias -l blind.list {
var %g = 1, %r = ^[0-9]+ [0-9]+ [0-9]+$, %o
if (!$regex($1-3,%r)) return
if ($isid) {
var %x = $2, %y = $3, %t = $hget(BlindLists,0).item
while %t {
tokenize 32 $hget(BlindLists,%t).data
if ($inrect(%x,%y,$2,$3,$4,$calc($5 -1))) break
dec %t
}
if (!%t) var %g = 0
else {
var %li = $int($calc((%y -2 - $3) / 15 +1)), %l = $remove($6-,!), %g = 1
tokenize 32 $1-5 $instok($deltok(%l,%li,165),$+(!,$gettok(%l,%li,165)),%li,165)
if (%li <= 0) var %g = 0
}
}
if (%g) {
if (!$regex($3-5,%r)) return
drawrect -nr @Blind 0 1 $2-5
drawrect -fnr @Blind 16777215 1 $calc($2 +1) $calc($3 +1) $calc($4 -2) $calc($5 -2)
hadd -m BlindLists $1 $1-
var %y = $calc($3 +2), %my = $calc($3 + $5 +15), %l = $calc($4 -6), %x = $calc($2 +3), %id = $1
tokenize 32 $6-
var %t = 1, %m = $numtok($1-,165)
while ((%t <= %m) && (%y <= %my)) {
if ($gettok($1-,%t,165)) {
var %q = $ifmatch
if ($remove(%q,!)) {
if (! isin %q) drawrect -fnr @Blind 16761024 1 $calc(%x - 2) $calc(%y -1) $calc(%l + 4) 17
drawtext -cnr @Blind 0 Tahoma 12 %x %y %l 15 $remove(%q,!)
}
}
inc %t
inc %y 15
}
return %id %li
}
}
alias -l blind.id {
if ($blind.button(1,$$1,$$2)) return $ifmatch
elseif ($blind.edit(1,$$1,$$2)) return $ifmatch
else return $blind.list(1,$$1,$$2)
}
on *:keydown:@Blind:*:{
if ($keyval == 27) {
if ($hget(Blind,MenuSel)) blind.backup
else blind.close
return
}
if (!$hget(Blind,EditSel)) {
if ($findtok(f o a,$keychar,1,32)) {
var %n = $+(PosMenu,$ifmatch)
if (!$hget(Blind,MenuSel)) {
blind.svg
hadd -m Blind MenuSel %n
}
if ($hget(Blind,MenuSel) != %n) {
blind.backup -n
hadd -m Blind MenuSel %n
}
blind.menu %n
}
elseif ($istok(37 39,$keyval,32)) {
if ($hget(Blind,MenuSel)) {
var %n = $calc($remove($hget(Blind,MenuSel),PosMenu) + $keyval - 38), %o = $+(PosMenu,%n), %m = $+(1-,$numtok($hget(Blind,Menu),165))
if (%n isnum %m) {
blind.backup -n
hadd -m Blind MenuSel %o
blind.menu %o
}
}
else {
blind.svg
var %o = $+(PosMenu,$abs($calc($keyval - 40)))
hadd -m Blind MenuSel %o
blind.menu %o
}
}
elseif ($istok(38 40,$keyval,32)) {
if (!$hget(Blind,Submenu)) return
var %i = $calc($hget(Blind,SubmenuSel) + $calc($keyval - 39))
if (%i > $gettok($hget(Blind,$+(Menu,$remove($hget(Blind,MenuSel),PosMenu))),0,45)) var %i = $v2
elseif (%i < 1) var %i = 1
blind.subdraw $gettok($hget(Blind,Submenu),1,32) $gettok($hget(Blind,Submenu),3,32) %i $gettok($gettok($hget(Blind,Submenu),5-,32),%i,45)
hadd -m Blind SubmenuSel %i
}
elseif ($keyval == 13) {
tokenize 32 $hget(Blind,Submenu)
var %t = $hget(Blind,SubmenuSel)
if (!%t) return
blind.backup -n
if ($hget(Blind,Main) != $gettok($hget(Blind,$hget(Blind,SubmenuNom)),%t,165)) .timer -h 1 100 blind.menu.do $v2
drawdot @Blind
}
drawdot @Blind
return
}
if ($istok(9,$keyval,32)) return
var %e = $hget(Blind,EditSel)
if (($hget(Blind,MenuSel)) || (!%e)) return
tokenize 32 $hget(BlindEdits,%e)
var %h = hadd -m BlindEdits %e $1-5
if ($keyval == 221) hadd -m Blind Remember $iif($mouse.key & 4,¨,^)
elseif ($keyval == 13) $+($hget(Blind,Main),.ok) $remove($6-,$chr(124))
elseif ($hget(Blind,EditSel)) {
if ($keyval == 8) {
if ($left($6-,1) == $chr(124)) return
else %h $+($left($gettok($6-,1,124),-1),$chr(124),$gettok($6-,2,124))
}
elseif ($keyval == 46) {
if ($left($6-,1) == $chr(124)) %h $replace($+($chr(124),$right($6-,-2)),$chr(32),$chr(165))
else %h $replace($+($gettok($6-,1,124),$chr(124),$right($gettok($6-,2,124),-1)),$chr(32),$chr(165))
}
elseif ($istok(37 39,$keyval,32)) {
var %p = $calc($pos($6-,$chr(124)) $iif($keyval == 37,-2)), %c = $remove($6-,$chr(124))
if (($keyval == 37) && (%p == 0)) %h $replace($+($chr(124),%c),$chr(32),$chr(165))
elseif (%p < 0) return
else %h $replace($+($left(%c,%p),$chr(124),$right(%c,$+(-,%p))),$chr(32),$chr(165))
}
elseif ($keyval == 35) %h $replace($+($remove($6-,$chr(124)),$chr(124)),$chr(32),$chr(165))
elseif ($keyval == 36) %h $replace($+($chr(124),$remove($6-,$chr(124))),$chr(32),$chr(165))
elseif ($keychar != $null) {
var %a = $keychar
if ($istok(¨-^,$hget(Blind,Remember),45)) {
var %b = $findtok(a-e-i-o-u,$keychar,45)
if (%b) {
if ($hget(Blind,Remember) == ¨) var %l = ä-ë-ï-ö-ü
else var %l = â-ê-î-ô-û
var %a = $gettok(%l,%b,45)
}
}
if ($hget(Blind,Remember)) hdel Blind Remember
if ($left($6-,1) == $chr(124)) %h $replace($+(%a,$chr(124),$gettok($6-,1,124)),$chr(32),$chr(165))
else %h $replace($+($gettok($6-,1,124),%a,$chr(124),$gettok($6-,2,124)),$chr(32),$chr(165))
}
else return
hadd -m Blind Temp 1
blind.edit $hget(BlindEdits,%e)
drawdot @Blind
}
}
alias -l blind.chariot {
if (($window(@Blind)) && ($hget(Blind,EditSel))) {
var %i = $ifmatch, %e = $hget(BlindEdits,%i)
if (!$isid) {
.timerblind.edit -m 1 500 blind.chariot
hinc -m Blind Temp
var %o = $hget(Blind,Temp)
}
else var %o = $iif($hget(Blind,Temp),1,9)
.blind.edit $hget(BlindEdits,$hget(Blind,EditSel))
if (%o <= 1) {
tokenize 32 %e
var %b = $6-, %p = $pos(%b,$chr(124))
if (%p) var %x = $calc($2 -1 + $width($left($replace(%b,$chr(165),$chr(32)),$calc(%p)),Tahoma,12))
else var %x = $calc($2 +4)
drawline -nr @Blind $iif($hget(BlindEF,%i),16777215,0) 1 %x $calc($3 + 3) %x $calc($3 + $5 -3)
}
else hadd -m Blind Temp 0
drawdot @Blind
}
else {
.timerblind.edit off
hadd -m Blind Temp 0
}
}
alias -l blind.disp {
if (!$window(@Blind)) return
if ($hget(Blind,Main) != blind.start) return
drawcopy -n @Blind 51 121 503 168 @Blind 51 106
drawrect -fnr @Blind 16777215 1 51 271 503 16
drawtext -cpnr @Blind 0 Tahoma 12 53 272 501 20 $$1-
}
on *:MP3END:{
if (($window(@Blind)) && ($hget(Blind,Titre))) {
blind.disp Il s'agissait de $hget(Blind,Titre)
.blind.score
blind.start.test
}
}
Conclusion :
Si vous avez des problèmes, envoyez un commentaire sur cette page
Cette PicWin fait partie du remote PicWins disponibles avec mon add-on (www.arkanis.eu)
Le système de pendu tient sur peu de lignes (vu l'utilisation de $regsubex), j'en ai fait un petit jeu rapide pour ceux que ça interesse :
http://arkanisfr.free.fr/ArKanis/index.php?page=littlecode&id=19
Il fonctionne comme ceci : !pendu <#salon> <mot|phrase>
puis ensuite sur le #salon : !pendu <lettre|mots|phrase>
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.