public static void Main()
Console.WriteLine("Hello World");
public Hauptrunde Nächste{get;set;}
public Hauptrunde Vorherige{get;set;}
public Turnier Turnier{get;set;}
public List<Gruppe> Gruppen{get;set;}
public List<Team> Teams => Gruppen.SelectMany(d=>d.Teams).ToList();
public Runde ErsteRunde{get;set;}
public List<Runde> Runden
var lst = new List<Runde>();
while(rnd.Hauptrunde == this)
public List<Spiel> Spiele => Runden.SelectMany(d=>d.Spiele).ToList();
public bool Gespielt => Spiele.All(d=>d.Gespielt);
Gruppen?.ForEach(d=>d.Eintragen());
Spiele.ForEach(d=>d.Eintragen());
if(Spiele.Any(d=>!d.Gespielt)) return;
var teams = Nächste.Teams.Where(d=>d.GruppTyp == GruppTyp.Best);
foreach(var team in teams)
team.SetTeam(Gruppen.Select(d=>d.Tabelle[team.Platz]).OrderBy(d=>d.Punkte).ThenBy(d=>d.Diff).ThenBy(d=>d.Quote)[team.Best]);
public Hauptrunde Hauptrunde{get;set;}
public Turnier Turnier{get;set;}
public Runde Nächste{get;set;}
public Runde Vorherige{get;set;}
public List<Spiel> Spiele{get;set;}
public bool Gespielt => Spiele.All(d=>d.Gespielt);
public Hauptrunde Runde{get;set;}
public List<Spiel> Spiele{get;set;}
public Team[] Teams{get;set;}
public Team[] Tabelle{get;private set}
Tabelle = Teams.OrderBy(d=>d.Punkte).ThenBy(d=>d.Diff).ThenBy(d=>d.Quote).ToArray();
if(Spiele.Any(d=>!d.Gespielt)) return;
var teams = Runde.Nächste.Teams.Where(d=>d.GruppTyp == GruppTyp.Platz && d.GruppeAlt == this);
foreach(var team in Teams)
team.SetTeam(Tabelle[team.Platz]);
public GruppTyp GruppTyp{get;set;}
public byte Platz{get;set;}
public byte Best{get;set;}
public Gruppe GruppeAlt{get;set;}
public Spiel Spiel{get;set;}
public string Name{get;set;}
public string KurzName{get;set;}
public byte Schiri{get;set;}
public void SetTeam(Team alt)
if(A.GruppTyp == GruppTyp.Sieger && A.Spiel.Gespielt)
if(A.GruppTyp == GruppTyp.Verlierer && A.Spiel.Gespielt)
if(B.GruppTyp == GruppTyp.Sieger && B.Spiel.Gespielt)
if(B.GruppTyp == GruppTyp.Verlierer && B.Spiel.Gespielt)
public static class Durchsage
public static void Spielbegin()
Play(@"audio\spielbegin.wav");
public static void Seitenwechsel()
Play(@"audio\seitenwechsel.wav");
public static void Spielende()
Play(@"audio\spielende.wav");
public static void Runde(params Spiel[] spiele)
spiele = spiele.OrderBy(d=>d.Feld).ToArray();
Play(@"audio\nächsternd.wav");
foreach(var spiel in spiele)
Play($@"audio\feld{spiel.Feld:D2}.wav");
Play($@"team\{spiel.A.Kurzname}.wav");
Play(@"audio\gegen.wav");
Play($@"team\{spiel.B.Kurzname}.wav");
Play(@"audio\schiedsgericht.wav");
Play($@"team\{spiel.S.Kurzname}.wav");
public static void SchiriFehlt(Spiel spiel)
Play(@"audio\schiedsgericht.wav");
Play($@"audio\feld{spiel.Feld:D2}.wav");
Play($@"team\{spiel.S.Kurzname}.wav");
public static void MannschaftFehlt(Spiel spiel)
Play($@"audio\feld{spiel.Feld:D2}.wav");
Play($@"team\{spiel.A.Kurzname}.wav");
Play(@"audio\gegen.wav");
Play($@"team\{spiel.B.Kurzname}.wav");
private static void Play(string file)
var player = new SoundPlayer();
player.SoundLocation = file;