Program Duży Lotek

0

Witam, zrobiłem program, który losuje 6 liczb bez powtórzeń i wyświetla je w TextBoxach:

Random random = new Random();
int[] selectedNumbers = new int[6];

private void LosujButton_Click(object sender, EventArgs e)
        {
            for (int numberCount = 0; numberCount < selectedNumbers.Length; numberCount++)
            {
                int newNumber = random.Next(1, 50);

                for (int i = 0; i < numberCount; i++)
                {
                    if (newNumber == selectedNumbers[i])
                    {
                        MessageBox.Show("Znalazłem duplikat liczby (" + newNumber + ")");
                        newNumber = random.Next(1, 50);
                        MessageBox.Show("Wymieniłem duplikat na: " + newNumber);
                        continue;
                    }
                }
                selectedNumbers[numberCount] = newNumber;
            }

     
            int[] tablicaNumerów = new int[6];

            for (int x = 0; x < tablicaNumerów.Length; x++)
            {
                tablicaNumerów[x] = selectedNumbers[x];
            }

            Array.Sort(tablicaNumerów);

            textBox1.Text = tablicaNumerów[0].ToString();
            textBox2.Text = tablicaNumerów[1].ToString();
            textBox3.Text = tablicaNumerów[2].ToString();
            textBox4.Text = tablicaNumerów[3].ToString();
            textBox5.Text = tablicaNumerów[4].ToString();
            textBox6.Text = tablicaNumerów[5].ToString(); 

I nie wiem jak go przerobić, żeby przeprowadzał 1000 losowań naszych 6 liczb i wyświetlał np. w labelu ile trafiliśmy trójek, czwórek, piątek i szóstek, tj. jak w następującym przykładzie z C++:

    static void Main(string[] args)
            {
                int[] liczba;
                liczba = new int[6];

                string dane;
                int q;
                q = 0;
                int szesc, piec, cztery, trzy;
                szesc = 0;
                piec = 0;
                cztery = 0;
                trzy = 0;


                /* DANE */
                for (int j = 0; j <= 5; ++j)
                {
                    q++;
                jeszcze:
                    // wpisujemy liczbe z przedzialu od 1 do 49
                    Console.WriteLine("Podaj " + q + " liczbe w przedziale od 1 do 49: ");
                    dane = Console.ReadLine();
                    liczba[j] = int.Parse(dane);
                    // sprawdzamy czy zakres sie zgadza
                    if (liczba[j] < 1 || liczba[j] > 49)
                    {
                        Console.WriteLine("\nZle dane. Nacisnij dowolny przycisk.");
                        goto jeszcze;
                    }
                    if (j > 0)
                    {   // sprawdzamy czy aby nie wpisalismy 2 razy tej samej liczby
                        for (int k = 0; k < j; ++k)
                        {
                            if (liczba[k] == liczba[j])
                            {
                                Console.WriteLine("\nOups! Liczba juz byla ziomus.");
                                goto jeszcze;
                            }
                        }
                    }
                }
                /* ------------- */

                Console.WriteLine("No to czas na zgadywanie przez kompa:");
                Console.WriteLine("3...");
                System.Threading.Thread.Sleep(500);

                Console.WriteLine("2...");
                System.Threading.Thread.Sleep(500);

                Console.WriteLine("1...");
                System.Threading.Thread.Sleep(500);

                Console.WriteLine("...S T A R T...");
                System.Threading.Thread.Sleep(100);

                int[] liczbaZgadywana;
                liczbaZgadywana = new int[6];

                Random rnd = new Random();
                for (int z = 0; z < 1000; ++z)
                {
                    int tmp;
                    tmp = 0;
                    /* LOSOWANIE BEZ POWTARZANIA*/
                    for (int i = 0; i <= 5; ++i)
                    {
                    los:
                        liczbaZgadywana[i] = rnd.Next(1, 50);
                        if (i > 0)
                        {   
                            for (int k = 0; k < i; ++k)
                            {
                                if (liczbaZgadywana[k] == liczbaZgadywana[i])
                                {
                                    goto los;
                                }
                            }
                        }
                        // wyswietlamy wylosowane 6 cyfr
                        if (i == 0)
                        {
                            Console.WriteLine("\n");
                        }
                        Console.Write(liczbaZgadywana[i] + " ");

                        // sprawdzamy ile bylo trafionych
                        for (int j = 0; j <= 5; j++)
                        {
                            if (liczba[j] == liczbaZgadywana[i])
                            {
                                tmp++;
                                if (tmp == 3)
                                    trzy++;
                                if (tmp == 4)
                                    cztery++;
                                if (tmp == 5)
                                    piec++;
                                if (tmp == 6)
                                    szesc++;
                            }
                        }
                    }
                }
                Console.WriteLine("\n\nNa 1000 losowan padlo: \n" + "szostki: " + szesc + " \npiatki: " + piec + "\nczworki: " + cztery + "\ntrojki: " + trzy);
                Console.ReadLine();
                return;
            }
        }
    } 
0

Witam, zrobiłem program,
w jakim języku? wiem że dałeś źródła, ale ze źródeł nie zawsze widać, jaki to język — przynajmniej na pierwszy rzut oka, a nie każdemu się chce wczytywać i domyślać.
w kazdym razie, wygląda to na C#. ale

jak w następującym przykładzie z C++:
ten twój „następujący przykład” również jest w C#! różni się tym, że jest pod konsolę, a ty piszesz okienkowo.

0

Już się poprawiam. Piszę ten program w C#. A kod z tego drugiego programu to rzeczywiście C# pod konsolę.
Napisałem w C# żeby po kliknięciu w button losował mi 6 liczb (z przedziału 1-49) bez powtórzeń i wpisał je w TextBoxy.
A chciałem dopisać taką instrukcję, żeby po kliknięciu w drugi button przeprowadzał 1000 losowań naszych 6 liczb i wyświetlał
np. w labelu ile trafiliśmy trójek, czwórek, piątek i szóstek (na te 1000 losowań).

0
  1. Napisz sobie metodę, która losuje Ci tablicę 6 liczb.
  2. Po kliknięciu w pierwszy Button wywołaj tę funkcję raz, a jej wynik wyświetl w TextBoxach.
  3. Po kliknięciu w drugi Button wywołaj swoja funkcję w pętli tysiąc razy za każdym razem sprawdzając ile liczb zgadza się z podanymi przez użytkownika i zwiększając jakiś wcześniej zadeklarowany licznik.

1 użytkowników online, w tym zalogowanych: 0, gości: 1