Désolé si c'est long mais j'écris un programme qui dessine une main de poker (5 cartes différentes) d'un paquet standard de 52. La seule partie avec laquelle je lutte encore est d'obtenir des cartes différentes. Le code que j'ai maintenant est aussi simple que possible et fonctionne pour la plupart, mais parfois peut dessiner la même carte plus d'une fois. Je veux que la carte soit retirée du paquet une fois qu'elle est dessinée et je suis coincé sur cette partie.Comment obtenir différents objets aléatoires différents dans un tableau?
Card[] hand = new Card[5];
for (int i = 0; i < 5; i += 1)
{
int index = rand.nextInt(52);
hand[i] = cards[index];
}
return hand;
Comme il s'agit d'un tableau, vous ne pouvez pas vraiment le "supprimer" puisque l'index est toujours là; Au lieu de cela, une fois que vous l'avez dessiné, essayez de définir cet index sur null. – SomeStudent
Vous pouvez être inspiré par http://stackoverflow.com/questions/8115722/generating-unique-random-numbers-in-java – SomeDude
comme mentionné par @SomeStudent, êtes-vous autorisé à utiliser autre chose qu'un tableau? Comme une ArrayList par exemple. Vous pouvez ensuite supprimer l'objet lorsque vous le choisissez au hasard, et ensuite il ne sera pas disponible pour les tirages suivants (si vous faites cela, n'oubliez pas d'appeler nextInt avec une variable: rand.nextInt (numberOfCardsRemaining)). – alexbt