Mélangez le jeu de cartes en Java
-
Mélangez la
ArrayList
en utilisant la boucle traditionnelle en Java -
Mélangez la
ArrayList
à l’aide de la fonctionshuffle
des collections en Java
Le mot shuffle signifie littéralement organiser les éléments, les objets ou les cartes dans un ordre aléatoire ou indéfini. La liste d’objets qui ne suit pas un modèle défini est considérée comme mélangée.
De même, en Java, diverses méthodes permettent à un utilisateur de mélanger des éléments. Vous trouverez ci-dessous le bloc de code pour illustrer ce processus.
Mélangez la ArrayList
en utilisant la boucle traditionnelle en Java
import java.util.ArrayList;
public class Main {
private static final int SIZE_OF_DECK = 52;
public static void main(String[] args) {
ArrayList<Integer> cardsDeck = new ArrayList<>();
for (int i = 0; i < SIZE_OF_DECK; ++i) {
cardsDeck.add(i);
}
System.out.println("Deck Of Cards:" + cardsDeck);
ArrayList<Integer> shuffledDeck = new ArrayList<>();
while (cardsDeck.size() > 0) {
int index = (int) (Math.random() * cardsDeck.size());
int removedCard = cardsDeck.remove(index);
shuffledDeck.add(removedCard);
}
System.out.println("Shuffled Cards" + shuffledDeck);
}
}
Dans le code ci-dessus, une ArrayList
est instanciée. L’instance créée aide à ajouter des éléments dans la ArrayList
. La liste est remplie par ordre séquentiel des valeurs 0
à 51
. La taille du deck est une variable statique déclarée au niveau de la classe.
La boucle for
vérifie la condition, dans laquelle la valeur initiale est vérifiée avec la variable de taille de pont statique. Maintenant, pour mélanger la liste initiale, une autre ArrayList
vide est créée. Nous allons appliquer une boucle while
avec une condition où la taille du deck doit être supérieure à la valeur zéro.
L’idée de conserver cette condition est que l’élément d’un jeu est supprimé et placé dans une autre liste mélangée. Par conséquent, la taille d’origine continue de diminuer et devient finalement nulle.
Dans la boucle, nous utilisons la fonction random
pour trouver l’index en premier. La méthode statique est présente dans la classe Math
et est directement appelée par le nom de la classe. La fonction utilitaire génère un nombre aléatoire compris entre 0.0
et 1.0
. La méthode renvoie toujours une valeur double
.
Pour calculer la valeur index
, le nombre aléatoire formé est multiplié par la taille actuelle de la liste du tableau. Par conséquent, générer un index aléatoire à chaque fois.
Maintenant, l’index formé est utilisé pour supprimer l’élément à l’index dans le deck d’origine. La méthode remove
provient de la classe ArrayList
et supprime la valeur particulière à l’index. Il prend l’index ou la position dans la liste à supprimer.
La fonction renvoie également l’élément à l’index dans la liste. L’objet à supprimer est ajouté à la nouvelle liste mélangée. La boucle continue, où un élément réduit maintenant la taille du deck d’origine. Par conséquent, lors de la prochaine itération, un nouvel index sera généré. Et à chaque fois, une valeur est supprimée et ajoutée dans la liste brassée.
Ci-dessous se trouve la sortie du bloc de code donné.
Deck Of Cards:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]
Shuffled Cards[51, 34, 28, 47, 14, 49, 42, 50, 26, 0, 44, 43, 2, 36, 30, 8, 46, 11, 21, 23, 7, 4, 33, 41, 32, 1, 20, 3, 10, 18, 6, 40, 29, 24, 31, 13, 45, 39, 22, 15, 27, 48, 9, 5, 25, 12, 38, 35, 37, 17, 16, 19]
Mélangez la ArrayList
à l’aide de la fonction shuffle
des collections en Java
Ci-dessous se trouve le bloc de code démontrant le brassage à l’aide de la méthode shuffle
.
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
int deckSize = 52;
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < deckSize; ++i) {
list.add(i);
}
System.out.println("Sequential List: " + list);
Collections.shuffle(list);
System.out.println("Shuffled List: " + list);
}
}
Dans le bloc de code, la procédure d’instanciation ArrayList
est la même. L’ajout d’éléments dans la liste se fait de manière similaire à celui du premier code. Nous imprimons la liste ordonnée sur la console en utilisant la méthode println
.
Maintenant, la fonction shuffle
de Collections
est appelée. Cette méthode effectue une permutation et calcule aléatoirement les valeurs de la liste donnée. Cette fonction vide l’élément sélectionné au hasard dans la liste. Il lève la UnsupportedOperationException
lorsque la liste fournie ne prend pas en charge l’opération set. La liste formée au hasard est imprimée dans la console avec les listes originales.
Sequential List[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]
Shuffled List[46, 5, 4, 0, 19, 11, 13, 21, 1, 38, 36, 29, 31, 35, 48, 22, 49, 6, 14, 51, 3, 47, 16, 12, 42, 27, 50, 40, 26, 30, 33, 9, 43, 39, 2, 10, 28, 44, 8, 24, 41, 32, 25, 45, 34, 7, 23, 15, 18, 20, 37, 17]
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedInArticle connexe - Java ArrayList
- Comment trier les objets dans ArrayList par date en Java
- Comparer les ArrayLists en Java
- Convertir ArrayList en Set en Java
- Convertir ArrayList en tableau Int en Java
- Conversion Set en ArrayList en Java
- La différence entre ArrayList et LinkedList en Java
Article connexe - Java Loop
- Boucle Do-While Java avec entrée utilisateur
- Sortir d'une boucle for en Java
- Casser les boucles imbriquées en Java
- Quitter une boucle While en Java
- Java for boucle avec deux variables