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???
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");
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
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)
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)