Module modPeak
    Public booBereitsGezogen(52) As Boolean ' gezogene karten
    Public booGesperrt(27) As Boolean        ' False = karten liegen nicht frei
    Public booFrei As Boolean
    Public booNeueSpielrunde As Boolean = False
    'Public intPunkte As Integer = 0          ' punktzahl des spielers ##
    'Public intSpielrunde As Integer = 1      ' anzahl der spielrunden ##

    Public intAblageNr As Integer     ' aufgedeckte karte
    Private intRandom As New Random
    Public Sub Grundeinstellung()
        Dim intX As Integer = 30 ' linker rand
        Dim i As Integer
        '---- karten positionieren (linker rand, Oberer Rand)
        For i = 18 To 27
            ZeichneKarte(i).Location = New Point(intX, 210)
            intX += 105
        Next
        intX = 85
        For i = 9 To 17
            ZeichneKarte(i).Location = New Point(intX, 150)
            intX += 105
        Next
        intX = 140
        For i = 3 To 4
            ZeichneKarte(i).Location = New Point(intX, 90)
            ZeichneKarte(i + 2).Location = New Point(intX + 320, 90)
            ZeichneKarte(i + 4).Location = New Point(intX + 630, 90)
            intX += 105
        Next
        intX = 195
        For i = 0 To 2
            ZeichneKarte(i).Location = New Point(intX, 40)
            intX += 315
        Next
        For i = 0 To 27 : booGesperrt(i) = True : Next
        For i = 20 To 27 : booGesperrt(i) = False : Next   ' karten freigeben

    End Sub
    Public Sub KartenAufSpielfeldSichtbar()
        Dim i As Integer
        For i = 0 To 29 : ZeichneKarte(i).Visible = True : Next
        If Not booNeueSpielrunde Then
            For i = 30 To 32  ' joker zeichnen
                ZeichneKarte(i).Image = KartenNr(55).Image
            Next
        End If
        Form1.PicWeiter.Visible = True
    End Sub
    Public Sub AlleKartenZiehen()
        Dim i As Integer
        Dim intModus As Integer = 0
        For i = 1 To 52 : booBereitsGezogen(i) = False : Next
        With Form1
            .LstTalon.Items.Clear() : .LstKarten.Items.Clear()
            For i = 0 To 51
                If i > 28 Then intModus = 1
                booBereitsGezogen(Zufallszahl(1, 53, intModus)) = True
            Next
            .LblInfo.Text = "Klicken Sie auf eine Karte um diese abzulegen."
            intAblageNr = CInt(.LstKarten.Items(.LstKarten.Items.Count - 1))
        End With
    End Sub
    '--- karten ziehen und in listen schreiben
    Public Function Zufallszahl(ByVal intTief As Integer, ByVal intHoch As Integer, intModus As Integer) As Integer
        With Form1
            Do
                Zufallszahl = intRandom.Next(intTief, intHoch)
                If Not booBereitsGezogen(Zufallszahl) Then
                    If intModus = 0 Then  '-- spielfeld
                        .LstKarten.Items.Add(Zufallszahl.ToString)
                    Else                  '-- talon
                        .LstTalon.Items.Add(Zufallszahl.ToString)
                    End If
                    Exit Do         ' korrekte zufallszahl
                End If
            Loop
        End With
        Return Zufallszahl
    End Function
    Public Sub ZeichneDasSpielfeld()
        Dim i As Integer
        With Form1
            '--------  alle karten zeichnen
            For i = 0 To .LstKarten.Items.Count - 1
                ZeichneKarte(i).Image = KartenNr(Convert.ToInt32(.LstKarten.Items(i))).Image
            Next
            ZeichneKarte(29).Image = FrmKarten.PicTalon.Image
            .LblTalon.Text = "Es sind " & CStr(.LstTalon.Items.Count) & " Karten im Talon."
        End With
    End Sub
End Module
