Et ce que tu as mis fonctionne ???
Les boucles for ne fonctionnent pas comme tu l'as mis, mais comme ça :
for(int i=0;i<n;i++) //signifie pour i commençant à 0 et tant que i<n, boucle et incrémente i de 1
Voici quelques méthodes qui doivent fonctionner :
///<summary>
/// Tire une carte au hasard dans un paquet et l'enlève du paquet.
///</summary>
///<param name="deck">Le paquet de cartes.</param>
///<param name="r">Générateur de nombres pseudo-aléatoirs.</param>
///<returns>La carte tirée.</returns>
privateintDrawRandomCard(List<int> deck,Randomr)
{
intindex = r.Next(deck.Count);
intres = deck[index];
deck.RemoveAt(index);
returnres;
}
///<summary>
/// Construit un paquet de cartes ordrées
///</summary>
///<param name="capacity">La capacité du paquet.</param>
///<returns>Le paquet de carte</returns>
privateList<int> BuildOrderedDeck(intcapacity)
{
List<int> res = newList<int>(capacity);
for (inti=0;i<capacity;i++)
res.Add(i);
returnres;
}
///<summary>
/// Construit et brasse un paquet de carte.
///</summary>
///<param name="capacity">La capacité du paquet.</param>
///<param name="swapCount">Le nombre d'échange de carte pour brasser le paquet.</param>
///<returns>Le paquet de carte</returns>
privateList<int> BuildShuffledDeck(intcapacity, intswapCount)
{
List<int> deck =BuildOrderedDeck(capacity);
Randomr = newRandom();
for (inti = 0; i < swapCount; i++)
{
intindex1 = r.Next(capacity);
intindex2 = r.Next(capacity);
inttemp = deck[index1];
deck[index1] = deck[index2];
deck[index2] = temp;
}
returndeck;
}
Alors soit tu construits un paquet trié avec BuildOrderedDeck et tu tires les carte aléatoirement dans ce paquet à l'aide de la méthode DrawRandomCard, soit tu construits ton paquet brassé avecBuildShuffledDeck, et tu peux les tirer à la suite.
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)