31-07-2009, 11:27 PM
(31-07-2009, 04:24 PM)Anthor a écrit : Bon je sais que tu as prévenu, mais inverser les clés et les valeurs pour en faire des string, c'est poussé...Je pense qu'il s'agit d'une erreur d'interprétation de mon code.
Les chiffres ne sont pas les "clés" de mon array, ce sont des probabilités de chance d'apparition.
J'aurais pu mettre à équi-probabilité, de la manière suivante :
$liste_mot_bourre = array ('**Hips !**' => '100','**Hic !**' => '100', '**burps**' => '100', '**beuuurrrk**' => '100');
Corrige moi si je me trompe. je n'utilise que très rarement des tableaux associatifs de cette manière, préférant en générale cette notation :
$liste_mot_bourre['** Hic **'] = 100 ;
$liste_mot_bourre['** Hips **'] = 100 ;
--------------
array_sum ()
connait pas, je me renseigne et je modifie mon code si c'est plus rapide.
Ok, rajouté.
-------------
preg_split au lieu de explode ?
Car si un joueur tape plusieurs espace, je voudrais eviter d'y glisser plusieurs onomatopées.
Implode ne me pose par contre aucun problème de ce type.
-------------
next ==> break ;
Autant pour moi, je voulais faire un break en fait. Une seule onomatopée entre 2 mots.
Mea Culpa.
--------------
J'ai bien fait de suggérer. Je reposte mon code une fois corrigé et testé ^^.
ben voilà en fait, je viens de faire le test :
Code :
// Transforme un texte comme si on était bourré !
function text_bourre ($texte)
{
// return $texte;
$moyenne_mot_bourre = 8;
$liste_mot_bourre = array ('**Hips !**' => '300','**Hups !**' => '300','**Hic !**' => '500', '**burps**' => '400', '**Héhéhé !**' => '150', '**beuuurrrk**' => '100');
$nb_valeur_bourre = array_sum ($liste_mot_bourre);
$tab_mot = preg_split ("/\s+/", $texte);
$nb_mot = count ($tab_mot);
$valeur_alea = rand (0, $moyenne_mot_bourre*$nb_valeur_bourre); // 8 c'est un ratio suffisant.
for ($i = 0; $i < $nb_mot; $i ++ )
{
// echo '<br> mot : '. $i . ' valeur alea = '.$valeur_alea.'';
// si on ne se trouve pas dans une balise
foreach ($liste_mot_bourre as $mot_bourre => $key)
{
// echo '<br> mot_bourre : '. $mot_bourre . ' key = '.$key.'';
$valeur_alea -= $key;
if ($valeur_alea < 0 )
{
$valeur_alea = rand (0, $moyenne_mot_bourre*$nb_valeur_bourre);
$tab_mot[$i] .= $mot_bourre;
break ;
}
}
}
$texte = implode (' ', $tab_mot);
return $texte;
}
Merci pour toutes vos remarques ! N'hésitez pas à en faire d'autres. Au pire ça donnera des idées aux autres.
Citation :Bien que je préfére laissé en général la liberté de laisser écrire les RP des joueurs tel qu'ils le souhaitent...Argorate > Soit assuré que ça n'affecte pas la partie Rp de mes joueurs. Ces plus une petite option pour s'amuser que autre chose. De manière perso, ça me permet aussi de tester un nouveau fonctionnement dans Magdales à peu de frais. Les joueurs buvant de grande quantité de Whisky ^^
Kéké