Menu
Coddy logo textTech

Eine Liste mischen

Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 8 von 65.

Wenn Sie die Reihenfolge der Elemente in einer Liste zufällig anordnen möchten, bietet Dart die Methode shuffle() an. Diese Methode ordnet alle Elemente in der Liste zufällig neu an und erzeugt so eine unvorhersehbare Reihenfolge, die perfekt für Spiele, Simulationen oder jede Situation geeignet ist, in der Sie zufällige Anordnungen benötigen.

Die Methode shuffle() modifiziert die ursprüngliche Liste direkt und ändert die Positionen aller Elemente zufällig. Jedes Mal, wenn Sie shuffle() aufrufen, erhalten Sie eine andere Anordnung derselben Elemente.

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

cards.shuffle();
print('Shuffled: $cards');  // [Queen, Ace, Jack, King] (zufällige Reihenfolge)

Diese Methode ist besonders nützlich für die Erstellung von Kartenspielen, das Randomisieren von Quizfragen oder jede Anwendung, bei der Sie Elemente in einer unvorhersehbaren Reihenfolge präsentieren möchten. Da shuffle() direkt im Original (in place) arbeitet, müssen Sie keine neue Liste erstellen – die bestehende Liste wird für Sie zufällig neu organisiert.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das einen Spielturnier-Baum verwaltet, indem es Teams in zufällige Paarungen mischt. Ihr Programm sollte:

  1. Einen String-Input einlesen, der den Namen des Turniers darstellt (dieser Wert wird gelesen, aber nicht ausgegeben)
  2. Mehrere String-Inputs einlesen, die Teamnamen darstellen (die Eingabe endet, wenn ein leerer String empfangen wird)
  3. Die Teams in eine zufällige Reihenfolge mischen
  4. Jeden Teamnamen in einer separaten Zeile ausgeben

Wenn zum Beispiel der Turniername "Local Cup" ist und die Teams "Wolves", "Hawks" sind, sollte Ihr Programm die Teamnamen in einer gemischten (zufälligen) Reihenfolge ausgeben, einen pro Zeile:

Hawks
Wolves

Oder:

Wolves
Hawks

Da shuffle() die Reihenfolge zufällig festlegt, ist jede Anordnung der Teams gültig.

Spickzettel

Die shuffle() Methode randomisiert die Reihenfolge der Elemente in einer Liste:

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

cards.shuffle();
print('Shuffled: $cards');  // [Queen, Ace, Jack, King] (zufällige Reihenfolge)

Die shuffle() Methode verändert die ursprüngliche Liste direkt und erzeugt bei jedem Aufruf eine andere zufällige Anordnung.

Probier es selbst

import 'dart:io';

void main() {
  // Turniernamen lesen
  String? tournamentName = stdin.readLineSync();
  
  // Teamnamen lesen, bis eine leere Zeichenfolge eingegeben wird
  List<String> teams = [];
  String? teamName;
  while ((teamName = stdin.readLineSync()) != null && teamName!.isNotEmpty) {
    teams.add(teamName);
  }
  
  // TODO: Die Teamliste für zufällige Paarungen mischen

  // Jedes Team in einer eigenen Zeile ausgeben
  for (String team in teams) {
    print(team);
  }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf