Esempio n. 1
0
        private void KoRunde()
        {
            int Spielnummer = (Spielplan.Spieltag.Count == 0) ? 1 : Spielplan.Spieltag.Last().Spiel.Last().Nummer + 1;
            int AnzahlTeams = Spielplan.Spieltag.Count > 0 ? Spielplan.Spieltag.Last().GetGewinner().Count : Teams.Count;

            try
            {
                Spieltag s = new Spieltag();
                if (Spielnummer <= 1) //Erste KO-Runde
                {
                    for (int i = 0; i < AnzahlTeams / 2; i++)
                    {
                        if (Teams[AnzahlTeams - i - 1].Bezeichnung != "BYE" || Teams[i].Bezeichnung != "BYE")
                        {
                            s.Spiel.Add(new Spiel(Spielnummer, Teams[AnzahlTeams - i - 1], Teams[i], Form));
                            Spielnummer++;
                        }
                    }
                }
                else //n-te KO-Runde
                {
                    List <Mannschaft> Gewinner = Spielplan.Spieltag.Last().GetGewinner();
                    for (int i = 0; i < Gewinner.Count / 2; i++)
                    {
                        //Nur Spiel erstellen wenn beide Teams nicht BYE
                        if (Gewinner[i].Bezeichnung != "BYE" && Gewinner[AnzahlTeams - i - 1].Bezeichnung != "BYE")
                        {
                            s.Spiel.Add(new Spiel(Spielnummer, Gewinner[i], Gewinner[AnzahlTeams - i - 1], Form));
                            Spielnummer++;
                        }
                    }
                }
                Spielplan.Hinzufuegen(s);
            }
            catch (Exception e)
            {
                string FehlerString = AnzahlTeams == 1 ? "Gewinner steht fest" : e.Message;
            }
        }
Esempio n. 2
0
        private void Liga()
        {
            int Spielnummer = 1;
            int AnzahlTeams = Teams.Count;

            //Teams in Zwischencontainer, Letztes Team zu Joker
            Mannschaft Joker = Teams.Last();

            Mannschaft[] TeamsOhneJoker = new Mannschaft[AnzahlTeams - 1];
            for (int i = 0; i < AnzahlTeams - 1; i++)
            {
                TeamsOhneJoker[i] = Teams[i];
            }

            //Spielplan Liga erstellen
            for (int n = 1; n < AnzahlTeams; n++)
            {
                //Spieltag Liga erstellen
                Spieltag     PaarungenSpieltag = new Spieltag();
                Mannschaft[] ContainerA        = new Mannschaft[AnzahlTeams / 2];
                Mannschaft[] ContainerB        = new Mannschaft[AnzahlTeams / 2];
                int          offset            = (AnzahlTeams / 2) - 1;
                //Zwei Array füllen mit Joker an fester Stelle
                for (int i = 0; i < AnzahlTeams / 2; i++)
                {
                    if (i == 0)
                    {
                        ContainerB[i] = Joker;
                    }
                    else
                    {
                        ContainerB[i] = TeamsOhneJoker[AnzahlTeams - 1 - i];
                    }
                    ContainerA[i] = TeamsOhneJoker[i];
                }
                //Spiele des Spieltag erstellen
                for (int i = 0; i < AnzahlTeams / 2; i++)
                {
                    if (ContainerA[i].Bezeichnung != "BYE" && ContainerB[i].Bezeichnung != "BYE")
                    {
                        PaarungenSpieltag.Spiel.Add(new Spiel(Spielnummer, ContainerA[i], ContainerB[i], Form));
                        Spielnummer++;
                    }
                }
                Spielplan.Spieltag.Add(PaarungenSpieltag);

                //Container Shift clockwise ohne Joker
                Mannschaft Temp = new Mannschaft();
                for (int i = 0; i < TeamsOhneJoker.Length; i++)
                {
                    if (i == 0)
                    {
                        Temp = TeamsOhneJoker[i];
                    }
                    else
                    {
                        TeamsOhneJoker[i - 1] = TeamsOhneJoker[i];
                    }
                    if (i == TeamsOhneJoker.Length - 1)
                    {
                        TeamsOhneJoker[i] = Temp;
                    }
                }
            }
        }
Esempio n. 3
0
        public void ImportXML(string dateipfad)
        {
            XmlReader reader         = XmlReader.Create(dateipfad);
            Gruppe    g              = null;
            int       form           = 0;
            int       phase          = 0;
            int       AnzahlGewinner = new int();
            Spieltag  tag            = new Spieltag();
            Spielplan plan           = new Spielplan();

            while (reader.Read())
            {
                if (reader.IsStartElement())
                {
                    switch (reader.Name)
                    {
                    case "Turnier":
                        Bezeichnung = reader.GetAttribute("Bezeichnung");
                        form        = Convert.ToInt32(reader.GetAttribute("Form"));
                        for (int i = 0; i < reader.AttributeCount - 2; i++)
                        {
                            Teilnehmer.Add(new Mannschaft(reader.GetAttribute("Teilnehmer" + i)));
                        }
                        Form = form;
                        break;

                    case "Teilnehmer":
                        //g.Team.Add(new Mannschaft(reader.GetAttribute("Mannschaft")));
                        g.Teams.Add(Teilnehmer.Find(x => x.Bezeichnung.Contains(reader.GetAttribute("Mannschaft"))));
                        break;

                    case "Gruppe":
                        AnzahlGewinner = Convert.ToInt32(reader.GetAttribute("AnzahlGewinner"));
                        phase          = Convert.ToInt32(reader.GetAttribute("Phase"));
                        plan           = new Spielplan();
                        g = new Gruppe(form, AnzahlGewinner, phase)
                        {
                            Spielplan = plan
                        };
                        break;

                    case "Spieltag":
                        tag = new Spieltag();
                        break;

                    case "Spiel":
                        tag.Spiel.Add(new Spiel(
                                          Convert.ToInt32(reader.GetAttribute("Nummer")),
                                          reader.GetAttribute("TeamA"),
                                          reader.GetAttribute("TeamB"),
                                          reader.GetAttribute("Ergebnis"),
                                          form));
                        break;
                    }
                }
                if (reader.NodeType == XmlNodeType.EndElement)
                {
                    switch (reader.Name)
                    {
                    case "Turnier":
                        break;

                    case "Teilnehmer":

                        break;

                    case "Gruppe":
                        Gruppen.Add(g);
                        break;

                    case "Spieltag":
                        plan.Hinzufuegen(tag);
                        break;

                    case "Spiel":
                        break;
                    }
                }
            }
        }
Esempio n. 4
0
 public void Hinzufuegen(Spieltag spieltag)
 {
     Spieltag.Add(spieltag);
 }