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

Erstelle ein Programm, das den Spielplan eines Turniers verwaltet, indem es Teams zu zufälligen Begegnungen mischt. Dein Programm sollte:

  1. Eine Zeichenketteneingabe lesen, die den Namen des Turniers darstellt (dieser Wert wird gelesen, aber nicht ausgegeben)
  2. Mehrere Zeichenketteneingaben lesen, die Teamnamen darstellen (die Eingabe endet, wenn eine leere Zeichenkette empfangen wird)
  3. Die Teams in eine zufällige Reihenfolge mischen
  4. Jeden Teamnamen in einer eigenen Zeile ausgeben

Wenn beispielsweise der Turniername "Local Cup" lautet und die Teams "Wolves" und "Hawks" sind, sollte dein 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.

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

Übe selbstständig: Online-Dart-Compiler