Public Class Form1
    Private intVersuche As Integer      ' summe aller versuche
    Private intKlicks As Integer        ' klicks auf bilder zaehlen
    Private intAuswahl(2) As Integer    ' gewaehlte bilder in Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' bilder auf dem spielfeld
        ZeichneBilder.Add(Pic0) : ZeichneBilder.Add(Pic1) : ZeichneBilder.Add(Pic2) : ZeichneBilder.Add(Pic3)
        ZeichneBilder.Add(Pic4) : ZeichneBilder.Add(Pic5) : ZeichneBilder.Add(Pic6) : ZeichneBilder.Add(Pic7)
        ZeichneBilder.Add(Pic8) : ZeichneBilder.Add(Pic9) : ZeichneBilder.Add(Pic10) : ZeichneBilder.Add(Pic11)
        ZeichneBilder.Add(Pic12) : ZeichneBilder.Add(Pic13) : ZeichneBilder.Add(Pic14) : ZeichneBilder.Add(Pic15)
        ' bilder der frmFlaggen
        BildNr.Add(FrmFlaggen.PicFlagge0) : BildNr.Add(FrmFlaggen.PicFlagge1) : BildNr.Add(FrmFlaggen.PicFlagge2)
        BildNr.Add(FrmFlaggen.PicFlagge3) : BildNr.Add(FrmFlaggen.PicFlagge4) : BildNr.Add(FrmFlaggen.PicFlagge5)
        BildNr.Add(FrmFlaggen.PicFlagge6) : BildNr.Add(FrmFlaggen.PicFlagge7) : BildNr.Add(FrmFlaggen.PicFlagge8)
        ' beschriftung
        CmdEnde.Text = "B&eenden" : CmdHilfe.Text = "&Spielanleitung" : CmdVorschau.Text = "&Vorschau"
        CmdNeu.Text = "&Neues Spiel" : Me.Text = "Flaggenspiel" : LblVersuche.Text = "0"
        StarteSpiel()              '-- posiionen festlegen
        'ZeichneGrueneFelder()      '-- bilder verbergen
    End Sub

    Private Sub CmdEnde_Click(sender As Object, e As EventArgs) Handles CmdEnde.Click
        BeendeDasSpiel()
    End Sub
    Private Sub BeendeDasSpiel()
        Dim strMeldung As String = "Bist Du sicher," _
                   & vbCrLf & "dass Du das Spiel beenden möchtest?"
        Dim strTitel As String = "Spiel beenden"
        Dim buttons As MessageBoxButtons = MessageBoxButtons.YesNo
        Dim DefaultButton As MessageBoxDefaultButton = MessageBoxDefaultButton.Button2
        Dim Icon As MessageBoxIcon = MessageBoxIcon.Question
        Dim intResultat As DialogResult
        intResultat = MessageBox.Show(strMeldung, strTitel, buttons, Icon, DefaultButton)
        '-- reaktion
        If (intResultat = DialogResult.Yes) Then
            Close()
        End If
    End Sub
    Private Sub KlickAuswerten(intPosition As Integer)
        CmdVorschau.Enabled = False
        intKlicks += 1    ' klicks zaehlen
        intAuswahl(intKlicks) = intPosition
        ZeichneBilder(intPosition).Image =
            BildNr(intBildFeldPosition(intPosition)).Image
        LblInfo.Text = "Klicke auf ein weiteres grünes Feld."
        If intKlicks = 2 Then
            SperreKlicks() ' kein weiterer klick -modFlaggen-
            If intBildFeldPosition(intAuswahl(1)) =
                intBildFeldPosition(intAuswahl(2)) Then
                LblInfo.Text = "Übereinstimmung:" & vbCrLf &
                    "Die Flaggen sind identisch."
                Timer2.Interval = 500
                Timer2.Start()
            Else
                LblInfo.Text = "Keine Übereinstimmung:" & vbCrLf &
                    "Merke Dir die Positionen der Flaggen."
                Timer1.Interval = 2000   'Timer1.Interval = 3000
                Timer1.Start()
            End If
        End If
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

        Timer1.Stop()
        ZeichneGrueneFelder()
        AuswertungBilder()      ' gruen einfaerben
    End Sub
    Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
        Timer2.Stop()
        ZeichneBilder(intAuswahl(1)).Visible = False
        ZeichneBilder(intAuswahl(2)).Visible = False
        ProbeEnde()  ' spiel beendet?
        Timer1.Stop()
    End Sub

    Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
        Timer3.Stop()
        ZeichneGrueneFelder()
        GibKlicksFrei()
        LblInfo.Text = "Klicke auf ein grünes Feld," & vbCrLf &
                 "um eine Flagge aufzudecken."
    End Sub
    Private Sub Pic0_Click(sender As Object, e As EventArgs) Handles Pic0.Click
        If booGesperrt(0) = True Then Exit Sub
        booGesperrt(0) = True
        KlickAuswerten(0)
    End Sub
    Private Sub Pic1_Click(sender As Object, e As EventArgs) Handles Pic1.Click
        If booGesperrt(1) = True Then Exit Sub
        booGesperrt(1) = True
        KlickAuswerten(1)
    End Sub

    Private Sub Pic2_Click(sender As Object, e As EventArgs) Handles Pic2.Click
        If booGesperrt(2) = True Then Exit Sub
        booGesperrt(2) = True
        KlickAuswerten(2)
    End Sub

    Private Sub Pic3_Click(sender As Object, e As EventArgs) Handles Pic3.Click
        If booGesperrt(3) = True Then Exit Sub
        booGesperrt(3) = True
        KlickAuswerten(3)
    End Sub

    Private Sub Pic4_Click(sender As Object, e As EventArgs) Handles Pic4.Click
        If booGesperrt(4) = True Then Exit Sub
        booGesperrt(4) = True
        KlickAuswerten(4)
    End Sub

    Private Sub Pic5_Click(sender As Object, e As EventArgs) Handles Pic5.Click
        If booGesperrt(5) = True Then Exit Sub
        booGesperrt(5) = True
        KlickAuswerten(5)
    End Sub

    Private Sub Pic6_Click(sender As Object, e As EventArgs) Handles Pic6.Click
        If booGesperrt(6) = True Then Exit Sub
        booGesperrt(6) = True
        KlickAuswerten(6)
    End Sub

    Private Sub Pic7_Click(sender As Object, e As EventArgs) Handles Pic7.Click
        If booGesperrt(7) = True Then Exit Sub
        booGesperrt(7) = True
        KlickAuswerten(7)
    End Sub

    Private Sub Pic8_Click(sender As Object, e As EventArgs) Handles Pic8.Click
        If booGesperrt(8) = True Then Exit Sub
        booGesperrt(8) = True
        KlickAuswerten(8)
    End Sub

    Private Sub Pic9_Click(sender As Object, e As EventArgs) Handles Pic9.Click
        If booGesperrt(9) = True Then Exit Sub
        booGesperrt(9) = True
        KlickAuswerten(9)
    End Sub

    Private Sub Pic10_Click(sender As Object, e As EventArgs) Handles Pic10.Click
        If booGesperrt(10) = True Then Exit Sub
        booGesperrt(10) = True
        KlickAuswerten(10)
    End Sub

    Private Sub Pic11_Click(sender As Object, e As EventArgs) Handles Pic11.Click
        If booGesperrt(11) = True Then Exit Sub
        booGesperrt(11) = True
        KlickAuswerten(11)
    End Sub

    Private Sub Pic12_Click(sender As Object, e As EventArgs) Handles Pic12.Click
        If booGesperrt(12) = True Then Exit Sub
        booGesperrt(12) = True
        KlickAuswerten(12)
    End Sub

    Private Sub Pic13_Click(sender As Object, e As EventArgs) Handles Pic13.Click
        If booGesperrt(13) = True Then Exit Sub
        booGesperrt(13) = True
        KlickAuswerten(13)
    End Sub

    Private Sub Pic14_Click(sender As Object, e As EventArgs) Handles Pic14.Click
        If booGesperrt(14) = True Then Exit Sub
        booGesperrt(14) = True
        KlickAuswerten(14)
    End Sub

    Private Sub Pic15_Click(sender As Object, e As EventArgs) Handles Pic15.Click
        If booGesperrt(15) = True Then Exit Sub
        booGesperrt(15) = True
        KlickAuswerten(15)
    End Sub
    '----------------
    Private Sub AuswertungBilder()
        intKlicks = 0
        intVersuche += 1   ' versuche zaehlen
        GibKlicksFrei()    ' klicks moeglich -modFlaggen-
        LblVersuche.Text = intVersuche.ToString
        LblInfo.Text = "Klicke auf ein grünes Feld," & vbCrLf &
            "um eine Flagge aufzudecken."
    End Sub

    Private Sub ProbeEnde()
        Dim intAnzahl As Integer = 0
        Dim i As Integer
        For i = 0 To 15
            ' falls das bildfelder verborgen ist
            If Not ZeichneBilder(i).Visible Then intAnzahl += 1
        Next
        If intAnzahl >= 16 Then
            MessageBox.Show("Du hast " & intVersuche.ToString &
                            " Versuche benötigt!", "Flaggenspiel")
            CmdNeu.Enabled = True
            LblInfo.Text = "Klicke auf >Neues Spiel<," & vbCrLf &
                "falls Du noch einmal spielen möchtest."
        Else
            AuswertungBilder()
        End If
    End Sub
    Private Sub CmdVorschau_Click(sender As Object, e As EventArgs) Handles CmdVorschau.Click
        LblInfo.Text = "Die Vorschau ist aktiv."
        CmdVorschau.Enabled = False
        SperreKlicks()
        Vorschau()
        Timer3.Interval = 3000
        Timer3.Start()
    End Sub
    'End Sub

    Private Sub CmdNeu_Click(sender As Object, e As EventArgs) Handles CmdNeu.Click
        StarteSpiel()
        ZeichneGrueneFelder()
        CmdVorschau.Enabled = True
        intVersuche = 0
        LblVersuche.Text = "0"
    End Sub
End Class
