/// <summary> /// Konstruktor który inicjalizuje wartości początkowe tablicy o nazwie tablica1 i wywołuje pierwsze losowanie bez powtórzeń w tej klasie istnieje możliwości modyfikowania ilości kul zgodnie z wytycznymi /// Mamy tablice typu TextBlock odpowiedzialna za liczby od 1 do 49 oraz tablice typu Border o nazwie tablica2, która jest odpowiedzialna za ukrywanie nadmiarowych kul wartość startowa jest równa 6 /// </summary> public Lotto_Lotto() { InitializeComponent(); /// Ukrywanie nadmiarowych kul Border[] tablica2 = new Border[] { bor0, bor1, bor2, bor3, bor4, bor5, bor6, bor7, bor8, bor9, bor10, bor11 }; for (int i = tablica2.Length - 1; i > int.Parse(Liczba.Text) - 1; i--) { tablica2[i].Visibility = Visibility.Hidden; } Liczby licz = null; switch (Liczba.Text) { case "6": licz = new Szesc(); licz.Liczba(); break; } int[] tablica = new int[licz.Liczba()]; TextBlock[] tablica1 = new TextBlock[] { kula0, kula1, kula2, kula3, kula4, kula5, kula6, kula7, kula8, kula9, kula10, kula11 }; Random rand = new Random(); /// Algorytm losujący for (int i = 0; i < Convert.ToInt32(Liczba.Text); i++) { tablica[i] = rand.Next(1, 50); for (int j = 0; j < i; j++) { /// Algorytm zapewniający brak powtórzeń if (tablica[i] == tablica[j]) { i--; break; } } } ///Algorytm sortowania bombelkowego int zmienna = tablica.Length; do { for (int j = 0; j < zmienna - 1; j++) { if (tablica[j] > tablica[j + 1]) { int temp = tablica[j]; tablica[j] = tablica[j + 1]; tablica[j + 1] = temp; } } zmienna--; } while (zmienna > 1); /// Algorytm przypisywania tablicy int do tablicy TexBlock for (int i = 0; i < Convert.ToInt32(Liczba.Text); i++) { tablica1[i].Text = tablica[i].ToString(); } /// Usuwa nadmiarowe wartości z tablicy for (int i = tablica1.Length - 1; i > Convert.ToInt32(Liczba.Text) - 1; i--) { tablica1[i].Text = string.Empty; } }
/// <summary> /// Przycisk odpowiedzialny za losowanie liczb, zawiera switch case ze zmienną typu Liczby która jest klasą polimorficzną zawierającą /// metody ustawiające wartości na odpowiednią poprzez pobieranie liczby z pola TextBlock'a ustawianego w Metodach od Jeden do Dwanaście /// Dzięki mechanizmowi polimorfizmu można ustawić ile elementów tablicy tablica1 ma zostać wykorzystanych w losowaniu /// </summary> /// <param name="sender"> Nadawca zdarzenia </param> /// <param name="e"> Przekazuje informacje związane ze zdarzeniami </param> private void Klik(object sender, RoutedEventArgs e) { Liczby licz = null; switch (Liczba.Text) { case "6": licz = new Szesc(); licz.Liczba(); break; case "7": licz = new Siedem(); break; case "8": licz = new Osiem(); licz.Liczba(); break; case "9": licz = new Dziewiec(); licz.Liczba(); break; case "10": licz = new Dziesiec(); licz.Liczba(); break; case "11": licz = new Jedenascie(); licz.Liczba(); break; case "12": licz = new Dwanascie(); licz.Liczba(); break; } int[] tablica = new int[licz.Liczba()]; TextBlock[] tablica1 = new TextBlock[] { kula0, kula1, kula2, kula3, kula4, kula5, kula6, kula7, kula8, kula9, kula10, kula11 }; Random rand = new Random(); /// Algorytm losujący for (int i = 0; i < Convert.ToInt32(Liczba.Text); i++) { tablica[i] = rand.Next(1, 50); for (int j = 0; j < i; j++) { /// Algorytm zapewniający brak powtórzeń if (tablica[i] == tablica[j]) { i--; break; } } } ///Algorytm sortowania bombelkowego int zmienna = tablica.Length; do { for (int j = 0; j < zmienna - 1; j++) { if (tablica[j] > tablica[j + 1]) { int temp = tablica[j]; tablica[j] = tablica[j + 1]; tablica[j + 1] = temp; } } zmienna--; } while (zmienna > 1); /// Algorytm przypisywania tablicy int do tablicy TexBlock for (int i = 0; i < Convert.ToInt32(Liczba.Text); i++) { tablica1[i].Text = tablica[i].ToString(); } /// Usuwa nadmiarowe wartości z tablicy for (int i = 11; i > Convert.ToInt32(Liczba.Text) - 1; i--) { tablica1[i].Text = string.Empty; } }