Hi, ich soll ein KO-Turnier erstellen, das Ergebnis (Sieger, Finalist, Halbfinalisten etc) zufällig bestimmen und am Ende das Turnierergebnis in dieser Form ausgeben, zB:
Sieger: F
Finalist: C
Halbfinale: F:A, C:B
Viertelfinale: F:H, C:E, A:G, B
...
Ich habe es bereits geschafft, mit Scanner ein Turnier mit 4, 8, 16 und 32 Teilnehmern aufzubauen, mit collections.shuffle die Liste mit den Teilnehmern durchzumischen und Sieger und Finalist auszugeben. Was ich nicht schaffe ist der Aufbau der Turnierstruktur am Ende. Hat jemand eine Idee, wie das am einfachsten/effektivsten umzusetzen wäre? Würde mich über jede Hilfe freuen!!!
Hier mein bisheriger Code:
Sieger: F
Finalist: C
Halbfinale: F:A, C:B
Viertelfinale: F:H, C:E, A:G, B
...
Ich habe es bereits geschafft, mit Scanner ein Turnier mit 4, 8, 16 und 32 Teilnehmern aufzubauen, mit collections.shuffle die Liste mit den Teilnehmern durchzumischen und Sieger und Finalist auszugeben. Was ich nicht schaffe ist der Aufbau der Turnierstruktur am Ende. Hat jemand eine Idee, wie das am einfachsten/effektivsten umzusetzen wäre? Würde mich über jede Hilfe freuen!!!
Hier mein bisheriger Code:
Java:
import java.util.*;
import java.io.*;
public class Tournament {
public static void main (String [] args) {
System.out.println("How many teams should participate? 4, 8, 16 or 32?");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
LinkedList list = new LinkedList();
String s="";
if (n == 4)
{
s = "A B C D";
}
if (n == 8)
{
s = "A B C D E F G H";
}
if (n == 16)
{
s = "A B C D E F G H I J K L M N O P";
}
if (n == 32)
{
s = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5";
}
System.out.println();
System.out.println("Participants: ");
System.out.println(s);
System.out.println();
Scanner number = new Scanner(s);
while (number.hasNext()) {
list.add(number.next());
}
System.out.println();
ListIterator it = list.listIterator();
Collections.shuffle(list, new Random());
System.out.println("Winner: " + list.get(0));
System.out.println("Runner-up: " + list.get(1));
System.out.println("");
}
}
Zuletzt bearbeitet: