Wardog56
Messages postés15Date d'inscriptionmercredi 12 octobre 2005StatutMembreDernière intervention19 juin 2006
-
4 juin 2006 à 21:28
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 2008
-
5 juin 2006 à 15:30
Bonjour à tous !!!
Voila mon probleme, je veux que mon programme génére une reponse au hasard parmi celle citée
Lorsque l'utilisateur dit "aurevoir" je veux que le programme reponde SOIT "Tchao" OU "A+" et non les deux. Comment faire???
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 5 juin 2006 à 13:28
Ca marche peut etre, mais ce n'est pas bon.
En fait il faut prendre moins de raccourcis que j'en ai pris dans le premier exemple, a savoir, generer l'instance de Random dans le if.
La, il faut que tu generes ton instance en dehors du if, que tu recuperes l'entier que te renvoie la méthode Next, et que tu bases tes if dessus (et non pas reinstancier un Random dans chaque if, ca n'a plus de sens)
<hr />
Random rand =
new
Random(
DateTime.Now.Millisecond);
int value = rand.Next(3);
// Valeur maximale retournée par le Next : 3
if (value == 0) session.Send(
"Tchao");
Coolpix08
Messages postés150Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention21 décembre 20072 5 juin 2006 à 14:00
heu jpige pas mais pourquoi tu utilise pas directe un case
ca ira deja plus vite
et tu ne serait pas limiter en nombre de reponse.
pour une valeur de 0->3 ben Next(3)
Dans lexemple de MorpionMx apres le int value=rand.Next(3)
switch (value)
{
case 0:
//code
break;
case 1:
//code
break;
case 2:
//code
break;
....
defautl:
//code
break;
}
et voila, pour le reste ta plus qu'à étendre le code
Vous n’avez pas trouvé la réponse que vous recherchez ?
Wardog56
Messages postés15Date d'inscriptionmercredi 12 octobre 2005StatutMembreDernière intervention19 juin 2006 5 juin 2006 à 13:16
J'ai retouché le code et il n'y a pas d'erreur.
Cela a l'air de produire ce que je veux...
Je me demande si c'est bon quand même...
Au fait le .Next il sert à quoi exactement ??
if
(new Random(DateTime
.Now
.Millisecond
).Next(3) = = 0)
session
. send ("Salut ");
else if (new Random(DateTime
.Now
.Millisecond
).Next(3) == 0)
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 5 juin 2006 à 15:20
Disons que si tu regardais la Doc (t'as quand meme 2 fois le lien), tu verrais que la méthode Next(maxValue) renvoit une valeur comprise entre 0 et maxValue (non incluse).
Il n'y aura jamais de 2, juste 0 et 1.
Donc dans ton cas, tu dois specifier 3 en maxValue.
Quant a default:, il s'effectue quand tu ne "gere" pas la condition, donc la ca ne serait pas le cas (les valeurs possibles renvoyées par Next sont 0 et 1, et tu as des case pour 0 et 1)