コード例 #1
0
ファイル: Multi.xaml.cs プロジェクト: MateuszMuszanski/Lotto
        /// <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 Dziesięć
        /// 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 Multi_Klik(object sender, RoutedEventArgs e)
        {
            Liczby licz = null;

            switch (Liczba.Text)
            {
            case "1":
                licz = new Jeden();
                licz.Liczba();
                break;

            case "2":
                licz = new Dwa();
                licz.Liczba();
                break;

            case "3":
                licz = new Trzy();
                licz.Liczba();
                break;

            case "4":
                licz = new Cztery();
                licz.Liczba();
                break;

            case "5":
                licz = new Piec();
                licz.Liczba();
                break;

            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 Dziesiec();
                licz.Liczba();
                break;

            case "10":
                licz = new Dziesiec();
                licz.Liczba();
                break;
            }
            int[]       tablica  = new int[licz.Liczba()];
            TextBlock[] tablica1 = new TextBlock[] { kula0, kula1, kula2, kula3, kula4, kula5, kula6, kula7, kula8, kula9 };
            Random      rand     = new Random();

            /// Algorytm losujący
            for (int i = 0; i < Convert.ToInt32(Liczba.Text); i++)
            {
                tablica[i] = rand.Next(1, 81);

                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;
            }
        }
コード例 #2
0
        /// <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 42 oraz tablice typu Border o nazwie tablica2, która jest odpowiedzialna za ukrywanie nadmiarowych kul wartość startowa jest równa 5
        /// </summary>
        public Mini_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 > 4; i--)
            {
                tablica2[i].Visibility = Visibility.Hidden;
            }
            Liczby licz = null;

            switch (Liczba.Text)
            {
            case "5":
                licz = new Piec();
                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, 43);

                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;
            }
        }