Hallo
Jetzt kam die Zeit wo ich auch mal ne Frage hätte 
Ich muss/will ein Programm schreiben, dass eine Planung von Spielrunden, für x-beliebige Teams durchführt. Nun soll jede Manchaft nur 1-mal gegen einander Spielen, und an einem Tag, darf eine Manschaft nur einmal spielen. Bei einer ungeraden Anzahl der Manschaften, soll die Spiele-Pause abwechselnd statt finden. Nun kam ich an dem Punkt an dem mir einfach die Ideen ausgegangen sind, wie ich die Liste mit den Spielen sortieren soll. Habe mir erstmal eine Liste der Spiele erstellt, wo jeder gegen jeden spielt und nun möchte ich diese sortieren (vlt. wäre eine Sortierung von vornerein besser, bin da offen für Vorschläge). Also in so etwa:
Die Methode playVs liefert einfach einen String in Form: team1Name - team2Name, den speichere ich in einer matchHistory
Hier nochmal die main():
Die ausgabe ist
Nun sollen die Spiele in Spieletage gruppiert werden, und so sortiert, dass ein Team höchstens 1-mal am Tag spielt. Meine Idee wäre vlt es mit Regex zu lösen um während der Sortierung zu gucken ob das Team schon vorkam, weiß aber nicht ob das so schön wäre. Hat jemand eine Idee ?
Ich muss/will ein Programm schreiben, dass eine Planung von Spielrunden, für x-beliebige Teams durchführt. Nun soll jede Manchaft nur 1-mal gegen einander Spielen, und an einem Tag, darf eine Manschaft nur einmal spielen. Bei einer ungeraden Anzahl der Manschaften, soll die Spiele-Pause abwechselnd statt finden. Nun kam ich an dem Punkt an dem mir einfach die Ideen ausgegangen sind, wie ich die Liste mit den Spielen sortieren soll. Habe mir erstmal eine Liste der Spiele erstellt, wo jeder gegen jeden spielt und nun möchte ich diese sortieren (vlt. wäre eine Sortierung von vornerein besser, bin da offen für Vorschläge). Also in so etwa:
Java:
public String makePlanFor(List<Team> teams){
String plan = "";
for(int i = 0 ; i < teams.size() ; i++){
for (int j = i+1 ; j < teams.size(); j++){
if (!matchHistory.contains(teams.get(i).playVs(teams.get(j)))){
matchHistory.add(teams.get(i).playVs(teams.get(j)));
}
}
}
for (String s: matchHistory){
plan = plan + s+"\n";
}
return plan;
}
Die Methode playVs liefert einfach einen String in Form: team1Name - team2Name, den speichere ich in einer matchHistory
Hier nochmal die main():
Java:
public static void main(String[] args) {
List<Team> teams = new ArrayList<Team>();
for (int i = 0 ; i < 5 ; i++){
teams.add(new Team("Team"+(i+1)));
}
PlanMaker planMaker = new PlanMaker();
planMaker.setRounds(1);
System.out.println(planMaker.makePlanFor(teams));
}
Code:
Team1 - Team2
Team1 - Team3
Team1 - Team4
Team1 - Team5
Team2 - Team3
Team2 - Team4
Team2 - Team5
Team3 - Team4
Team3 - Team5
Team4 - Team5
Nun sollen die Spiele in Spieletage gruppiert werden, und so sortiert, dass ein Team höchstens 1-mal am Tag spielt. Meine Idee wäre vlt es mit Regex zu lösen um während der Sortierung zu gucken ob das Team schon vorkam, weiß aber nicht ob das so schön wäre. Hat jemand eine Idee ?