Insersion de lettres

Résolu
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008 - 23 janv. 2008 à 17:44
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008 - 12 mai 2008 à 16:53
ex: le vendredi 13 
le remplacer par
 ** ******** **
est il possible que quand une lettre du  mot  " le vendredi 13 " 
 inserrer a la place de * ex:
 la lettre dite est E 
*e *e***e** ** 
j'ai voulu utilise $replace et $pos cela m'a donné que  des E partout 

10 réponses

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
23 janv. 2008 à 18:00
Pour remplacer une phrase par des *, utilise :
$regsubex(Ta phrase,/\S/g,*)
Dès qu'une lettre est "demandé", utilise if ($regex(La phrase,/Lettre/g)) pour savoir si la lettre est dedans, et pour remplacer les lettres utilise $regsubex(La Phrase,/([^ ])/g,*) un petit exemple :

alias testr {
  var -s %p Ga is Ga lol
  echo -a texte a afficher : $regsubex(%p,/\S/g,*)
  echo -a On demande la lettre a
  echo -a la lettre a est présente $regex(%p,/a/g) fois
  Echo -a texte a afficher avec remplacement de la lettre %a : $regsubex(%p,/[^a ]/g,*)
}

tape /testr :)
3
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
23 janv. 2008 à 18:01
Petite correction, pour remplacer les lettres, utilise $regsubex(La phrase,/[^Lettre ]/g,*)
(l'espace entre la lettre et le ] est important)
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
23 janv. 2008 à 18:07
Si c'est un peudu que tu veux faire, tu peux mettre ce code sur un bot et lui taper !pendu #tonsalon "la phrase" en privé

alias pendu echo -a Nouveau pendu : !pendu <#salon> en PV :: Ensuite pour jouer sur #salon : !pendu <lettre|mot|phrase>
on *:text:!pendu *:*:{
  tokenize 32 $strip($1-)
  if (!$2-) return
  if (!$chan) {
    if (!$3) return
    if ($left($2,1) != $chr(35)) return
    if ($hget(Pendu)) hfree Pendu
    hadd -m Pendu Salon $2
    hadd -m Pendu Mot $3-
    var %r $regsubex($hget(Pendu,Mot),/[a-z]/ig,_)
    hadd -m Pendu Masque %r
    msg $2 Pendu - Nouveau mot : $regsubex(%r,/(_+)/g,$+($str(_,$len(\t)),$chr(40),$len(\t),$chr(41))) $+($chr(40),Proposé par $nick,$chr(41))
  }
  elseif (($chan == $hget(Pendu,Salon)) && ($hget(Pendu,Mot))) {    var %r $hget(Pendu,Masque), %e $2-, %p = $pos($hget(Pendu,Mot),%e,0)
    if (!%p) hinc -m Pendu Score
    while %p {      var %s $calc($pos($hget(Pendu,Mot),%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 ($pos($hget(Pendu,Mot),_,0) == $pos(%r,_,0)) {
      msg $chan Bravo, vous avez réussi ce pendu ! Il s'agit effectivement de : $hget(Pendu,Mot)
      hdel Pendu Mot
    }
    elseif (%r != $hget(Pendu,Masque)) {
      hadd -m Pendu Masque %r
      msg $chan Pendu : %r
    }
    else msg $chan Faux $nick !
    if ($hget(Pendu,Score) > 5) {
      msg $chan Perdu ! C'était $hget(Pendu,Mot)
      .timer -m 1 500 kick $chan $nick Perdu ! C'était $hget(Pendu,Mot)
      hfree Pendu
    }
  }
}

ça peut très certainement être simplifiable, je l'ai fait de ça il y a plusieurs années, mais j'ai la flemme de m'y remettre ... :(
3
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
25 janv. 2008 à 16:37
 merci a vous  deux
par contre est il possible  sur le même style ajouter autant de lettre trouvées du même mot ou phrase ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
25 janv. 2008 à 17:57
$regsubex(Phrase,/[^aeiouy]/g,*)

remplace toute les voyelles dans le mot et laisse les autre lettre en *
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
25 janv. 2008 à 18:44
  me  suis mal exprimé
le but est a chaque fois qu'une lettre est trouvée  ,elle se rajoute au mot ou a la phrase  

 
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
25 janv. 2008 à 19:31
Hum, vu que j'avais testé le pendu d'ArKan!s, il me semble que cette fonction (si c'est bien ce dont tu parles) étais présente dans son code, il gère ça ici :
  var %r $hget(Pendu,Masque), %e $2-, %p = $pos($hget(Pendu,Mot),%e,0)
    if (!%p) hinc -m Pendu Score
    while %p {
     
var %s $calc($pos($hget(Pendu,Mot),%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
    }

ça serait bien qu'il explique un peu ce bout de code pour toi ^^
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
12 mai 2008 à 14:31
bjr
est il possible de faire déclancher un on *:text:*:#: a partir d'un alias par un timer ?
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 mai 2008 à 16:44
Donne un exemple au lieu de raconter des choses qui n'ont pas de sens, et n'hésite pas a crée des nouveau post tu as moins de chance d'avoir de réponse
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
12 mai 2008 à 16:53
ex:


alias bla {
msg # le vent 
timer1 1 10 ? (démarer le on text ) 

}
 on 1*:text:*:#:{
if($1 == souffle ) { msg # il pleut }
}
0
Rejoignez-nous