Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] Lotek czyli pseudo-losowanie liczb bez powtórzeń za pomocą buttona i listboxa. vb.net And C#


Rekomendowane odpowiedzi

Opublikowano

Witam.

Wiem że dużo osób ma problem z tym więc postanowiłem napisać dla was ten mały poradnik.

poradnik będzie skromny...

 

Więc zaczynamy ...

 

najpierw deklarujemy 3 zmienne

- pierwsza zmienna typu integer do przechowania losowych liczb.

- druga to zmienna (Class) New Random(), do wylosowania

- trzecia to zmienna logiczna "tablicowa", boolean, o rozmiarze 49, tyle liczb jest w lotku ^^

 

vb.net

 

        Dim rand As New Random()
        Dim num As Integer
        Dim Spr(49) As Boolean

 

C#

 

Random rnd = new Random();
            int num;
            bool[] spr = new bool[50];

 

Następnie ustawiamy wszystkie zmienne na false

 

vb.net

 

For x As Integer = 0 To 49
            Spr(x) = False
        Next

 

C#

 

 for(int x = 0; x <= 49; x++)
            {
                spr[x] = false;
 
            }

 

potem czyścimy listbox

 

vb.net

 

 ListBox1.Items.Clear()

C#

 

listBox1.Items.Clear();

 

następnie losujemy 6 liczb, i sprawdzamy czy była powtórzona...

 

vb.net

 

'losujemy 6 liczb
        Do Until ListBox1.Items.Count = 6
            num = rand.Next(1, 50)
            'jesli wliczna sie powtorzyla losuj dalej
            If Spr(num) = False Then
                Spr(num) = True
                ListBox1.Items.Add(num.ToString)
            End If
  Loop

 

C#

 

while (!(this.listBox1.Items.Count == 6))
            {
                num = rnd.Next(1, 50);
                if (spr[num] == false)
                {
                    spr[num] = true;
                    listBox1.Items.Add(num.ToString());
                }
 

 

Teraz cały kod który wyszedł^^

vb.net

 

 Dim rand As New Random()
        Dim num As Integer
        Dim Spr(49) As Boolean
 
        'sprawdzamy kazdy element tablicy...
        For x As Integer = 0 To 49
            Spr(x) = False
        Next
 
        'czyscimy listboxa
        ListBox1.Items.Clear()
 
        'losujemy 6 liczb
        Do Until ListBox1.Items.Count = 6
            num = rand.Next(1, 50)
            'jesli wliczna sie powtorzyla losuj dalej
            If Spr(num) = False Then
                Spr(num) = True
                ListBox1.Items.Add(num.ToString)
            End If
 
        Loop

 

C#

 

 

  Random rnd = new Random();
            int num;
            bool[] spr = new bool[50];
 
            for(int x = 0; x <= 49; x++)
            {
                spr[x] = false;
 
            }
 
            listBox1.Items.Clear();
 
 
            while (!(this.listBox1.Items.Count == 6))
            {
                num = rnd.Next(1, 50);
                if (spr[num] == false)
                {
                    spr[num] = true;
                    listBox1.Items.Add(num.ToString());
                }
 
 
 
            }
 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...