Menu
Coddy logo textTech

Mélanger une liste

Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 8 sur 65.

Lorsque vous avez besoin de randomiser l'ordre des éléments dans une liste, Dart fournit la méthode shuffle(). Cette méthode réorganise tous les éléments de la liste de manière aléatoire, créant un ordre imprévisible qui est parfait pour les jeux, les simulations ou toute situation où vous avez besoin d'arrangements aléatoires.

La méthode shuffle() modifie directement la liste originale, en changeant aléatoirement les positions de tous les éléments. Chaque fois que vous appelez shuffle(), vous obtiendrez une disposition différente des mêmes éléments.

List<String> cards = ['Ace', 'King', 'Queen', 'Jack'];
print('Original: $cards');  // [Ace, King, Queen, Jack]

cards.shuffle();
print('Shuffled: $cards');  // [Queen, Ace, Jack, King] (ordre aléatoire)

Cette méthode est particulièrement utile pour créer des jeux de cartes, mélanger aléatoirement des questions de quiz, ou toute application où vous souhaitez présenter des éléments dans un ordre imprévisible. Comme shuffle() fonctionne sur place, vous n'avez pas besoin de créer une nouvelle liste - la liste existante est réorganisée de manière aléatoire pour vous.

challenge icon

Défi

Facile

Créez un programme qui gère un tableau de tournoi de jeu en mélangeant les équipes pour des affrontements aléatoires. Votre programme doit :

  1. Lire une chaîne de caractères en entrée représentant le nom du tournoi (cette valeur est lue mais pas affichée)
  2. Lire plusieurs chaînes de caractères en entrée représentant les noms des équipes (la saisie s'arrête lorsqu'une chaîne vide est reçue)
  3. Mélanger les équipes dans un ordre aléatoire
  4. Afficher chaque nom d'équipe sur une ligne distincte

Par exemple, si le nom du tournoi est "Local Cup" et que les équipes sont "Wolves", "Hawks", votre programme doit afficher les noms des équipes dans un ordre mélangé (aléatoire), un par ligne :

Hawks
Wolves

Ou :

Wolves
Hawks

Puisque shuffle() rend l'ordre aléatoire, n'importe quel agencement des équipes est valide.

Aide-mémoire

La méthode shuffle() réorganise aléatoirement l'ordre des éléments dans une liste :

List<String> cards = ['Ace', 'King', 'Queen', 'Jack'];
print('Original: $cards');  // [Ace, King, Queen, Jack]

cards.shuffle();
print('Shuffled: $cards');  // [Queen, Ace, Jack, King] (ordre aléatoire)

La méthode shuffle() modifie directement la liste originale et crée un agencement aléatoire différent à chaque fois qu'elle est appelée.

Essayez vous-même

import 'dart:io';

void main() {
  // Lire le nom du tournoi
  String? tournamentName = stdin.readLineSync();
  
  // Lire les noms des équipes jusqu'à une chaîne vide
  List<String> teams = [];
  String? teamName;
  while ((teamName = stdin.readLineSync()) != null && teamName!.isNotEmpty) {
    teams.add(teamName);
  }
  
  // TODO: Mélanger la liste des équipes pour des confrontations aléatoires

  // Afficher chaque équipe sur une ligne séparée
  for (String team in teams) {
    print(team);
  }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux