/// <summary> /// Konstruktor tworzy dwa spotkania półfinałowe /// </summary> public FazaFinalowa(List <Druzyna> druzyny, List <Osoba> sedziowie, TypGry typ) : base(druzyny, typ) { //utworzenie dwóch spotkań półfinałowych spotkania.Add(new Spotkanie(druzyny[0], druzyny[1], LosujSedziow(sedziowie))); spotkania.Add(new Spotkanie(druzyny[2], druzyny[3], LosujSedziow(sedziowie))); }
/// <summary> /// Funkcja rozpoczynająca rozgrywkę, wywoływana po wciśnięciu przyciusku Rozpocznij Rozgrywkę /// </summary> private void RozpocznijRozgrywke(TypGry typGry) { try { //utworzenia rozgrywki stan.FazaPoczatkowa = new FazaPoczatkowa(stan.Druzyny, stan.Sedziowie, typGry); listBox_spotkania.ItemsSource = stan.FazaPoczatkowa.Spotkania(); listBox_spotkania.Items.Refresh(); stan.CzyRozgrywkaRozpoczeta = true; OdswiezTabliceWynikow(); PrzelaczInterfaceRozgryki(); } catch (PustaListaSedziowException ex) { MessageBox.Show(ex.Message); } catch (ZbytMalaLiczbaSedziowException ex) { MessageBox.Show(ex.Message + ex.getNazw()); } catch (BrakDruzynException ex) { MessageBox.Show(ex.Message); } catch (ZbytMalaLiczbaDruzynException ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Konstruktor tworzy rozgrywkę, ustwaia typ gry (zależnie od typu gry liczba sędziów jest różna) /// </summary> public Rozgrywka(List <Druzyna> druzyny, TypGry typ) { if (druzyny.Count < 4) { throw new ZbytMalaLiczbaDruzynException("Druzyn jest mniej niz 4"); } wyniki = new Dictionary <Druzyna, int>(); spotkania = new List <Spotkanie>(); typGry = typ; //utworzenie tablicy wyników i przypisanie wartości 0 każdej drużynie foreach (var druzyna in druzyny) { wyniki.Add(druzyna, 0); } }
/// <summary> /// Konstruktor tworzy spotkania każdy z każdym oraz ustawaia spotkania losowo /// </summary> public FazaPoczatkowa(List <Druzyna> druzyny, List <Osoba> sedziowie, TypGry typ) : base(druzyny, typ) { if (druzyny.Count == 0) { throw new BrakDruzynException("Nie dodano druzyn do rozgrywki"); } //utworzenie spotkania każdy z każdym for (int i = 0; i < druzyny.Count; i++) { for (int j = i; j < druzyny.Count; j++) { if (j != i) { spotkania.Add(new Spotkanie(druzyny[i], druzyny[j], LosujSedziow(sedziowie))); } } } //zmiana kolejności spotkań na losową spotkania = spotkania.OrderBy(i => Guid.NewGuid()).ToList(); }