Public Class Form1
    Private intKlick As Integer = 0
    Private booGezogen(49) As Boolean         ' alle zahlen
    Private intRandom As New Random           ' zufallsgenerator
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Label1.Text = "Vorschläge für Lottozalen," & vbCrLf &
            "            Viel Glück!"
        CmdZiehung.Text = "1. Ziehung"
    End Sub
    Private Sub CmdZiehung_Click(sender As Object, e As EventArgs) Handles CmdZiehung.Click
        Dim i As Integer
        intKlick += 1
        For i = 1 To 49
            booGezogen(i) = False '-- noch nicht gezogen
        Next
        '-----------------
        Select Case intKlick
            Case 1
                SchleifeDo_1()
                Lst1.Items.Clear()  '-- inhalt der List löschen
                For i = 1 To 49
                    If booGezogen(i) Then : Lst1.Items.Add(i.ToString) : End If
                Next
            '-----------------
            Case 2
                SchleifeDo_2()
                Lst2.Items.Clear()
                For i = 1 To 49
                    If booGezogen(i) Then : Lst2.Items.Add(i.ToString) : End If
                Next
                CmdZiehung.Text = CStr(intKlick) & ". Ziehung"
            Case 3
                SchleifeWhile()
                Lst3.Items.Clear()
                For i = 1 To 49
                    If booGezogen(i) Then : Lst3.Items.Add(i.ToString) : End If
                Next
                CmdZiehung.Text = CStr(intKlick) & ". Ziehung"
            Case 4
                SchleifeFor()
                Lst4.Items.Clear()
                For i = 1 To 49
                    If booGezogen(i) Then : Lst4.Items.Add(i.ToString) : End If
                Next
                CmdZiehung.Enabled = False
            Case Else
                Close()
        End Select
        CmdZiehung.Text = CStr(intKlick + 1) & ". Ziehung"
    End Sub
    Private Sub SchleifeDo_1()
        Dim intAnzahl As Integer = 0   ' zähler
        Dim intZufallsZahl As Integer  ' zufallszahl
        Do
            intZufallsZahl = intRandom.Next(1, 50)
            If Not booGezogen(intZufallsZahl) Then
                booGezogen(intZufallsZahl) = True
                intAnzahl += 1
            End If
        Loop While intAnzahl < 6
    End Sub

    Private Sub SchleifeDo_2()
        Dim intAnzahl As Integer = 0   ' zähler
        Dim intZufallsZahl As Integer  ' zufallszahl
        Do While intAnzahl < 6
            intZufallsZahl = intRandom.Next(1, 50)
            If Not booGezogen(intZufallsZahl) Then
                booGezogen(intZufallsZahl) = True
                intAnzahl += 1
            End If
        Loop
    End Sub
    Private Sub SchleifeWhile()
        Dim intAnzahl As Integer
        Dim intZufallsZahl As Integer  ' zufallszahl
        While intAnzahl < 6
            intZufallsZahl = intRandom.Next(1, 50)
            If Not booGezogen(intZufallsZahl) Then  ' zahl noch nicht gezogen
                booGezogen(intZufallsZahl) = True   ' zahl wurde gezogen
                intAnzahl += 1
            End If
        End While
    End Sub
    Private Sub SchleifeFor()
        Dim i As Integer
        Dim intZufallsZahl As Integer
        For i = 1 To 6
            intZufallsZahl = intRandom.Next(1, 50)
            If Not booGezogen(intZufallsZahl) Then  ' zahl noch nicht gezogen
                booGezogen(intZufallsZahl) = True   ' zahl wurde gezogen
            Else
                i -= 1
            End If
        Next
    End Sub
    Private Sub CmdBeenden_Click(sender As Object, e As EventArgs) Handles CmdBeenden.Click
        Close()
    End Sub
End Class
