Public Class Form1
    Private intVersuche As Integer           ' anzahl der Versuche
    Private strEingabe As String             ' eingegeben Zahl
    Private intZufallsZahl As Integer = 500  ' zufallszahl
    Private strVergleich As String           ' zahlen zusammenfügen nach eingabe
    Private str999 = "Gib eine Zahl zwischen 1 und 999 ein." ' infotext
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ErzeugeZufallsZahl()
        WerteZuruecksetzen()
        LblZufall.Visible = False
        '-- LblZufall.Visible = True    ' für test aktivieren
    End Sub
    Private Sub CmdZ0_Click(sender As Object, e As EventArgs) Handles CmdZ0.Click
        strEingabe = CmdZ0.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub CmdZ1_Click(sender As Object, e As EventArgs) Handles CmdZ1.Click
        strEingabe = CmdZ1.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub CmdZ2_Click(sender As Object, e As EventArgs) Handles CmdZ2.Click
        strEingabe = CmdZ2.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub CmdZ3_Click(sender As Object, e As EventArgs) Handles CmdZ3.Click
        strEingabe = CmdZ3.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub CmdZ4_Click(sender As Object, e As EventArgs) Handles CmdZ4.Click
        strEingabe = CmdZ4.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub cmdZ5_Click(sender As Object, e As EventArgs) Handles CmdZ5.Click
        strEingabe = CmdZ5.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub CmdZ6_Click(sender As Object, e As EventArgs) Handles CmdZ6.Click
        strEingabe = CmdZ6.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub CmdZ7_Click(sender As Object, e As EventArgs) Handles CmdZ7.Click
        strEingabe = CmdZ7.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub CmdZ8_Click(sender As Object, e As EventArgs) Handles CmdZ8.Click
        strEingabe = CmdZ8.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub CmdZ9_Click(sender As Object, e As EventArgs) Handles CmdZ9.Click
        strEingabe = CmdZ9.Text
        ErgebnisAnzeigen()
    End Sub
    Private Sub ErgebnisAnzeigen()
        Dim intAnzahl As Integer      ' nur hier gültig       
        intAnzahl = Len(strVergleich) ' länge
        If intAnzahl = 3 Then
            Exit Sub         '---------exit------------ >
        End If
        '-- strVergleich = strVergleich + strEingabe
        strVergleich += strEingabe
        LblInfo.Text = "Gib eine weitere Zahl ein," & vbCrLf &
            "oder klicke auf >Richtige Zahl?<"
        If CInt(strVergleich) >= 100 Then
            LblInfo.Text = "Klicke auf >Richtige Zahl?<"
        End If
        TxtEingabe.Text = strVergleich
        CmdRichtig.Enabled = True
    End Sub
    Private Sub CmdCE_Click(sender As Object, e As EventArgs) Handles CmdCE.Click
        WerteZuruecksetzen()
        LblInfo.Text = str999
    End Sub

    Private Sub CmdRichtig_Click(sender As Object, e As EventArgs) Handles CmdRichtig.Click
        intVersuche += 1   'anzahl versuche + 1
        Dim intVergleich As Integer
        Dim strWeiter As String = "     Gib eine andere Zahl ein."
        Dim strNeu As String = "Klicke auf >Beenden< oder >Neues Spiel<"

        '--- fehler abfangen
        Try
            intVergleich = CInt(strVergleich)
        Catch ex As Exception
            LblInfo.Text = "Es ist ein Fehler aufgetreten." & vbCrLf &
                "Alle Eingaben wurden gelöscht!" & vbCrLf &
                "Eine neue Spielrunde beginnt!"
            NeuesSpiel()
            Exit Sub       '------------ exit----->
        End Try
        '---
        If intVergleich = intZufallsZahl Then
            LblInfo.Text = "" & CStr(intVergleich) & " ist die Zufallszahl!" & vbCrLf &
                "Du hast " & CStr(intVersuche) & " Versuche benötig." & vbCrLf & strNeu
        ElseIf intVergleich < intZufallsZahl Then
            LblInfo.Text = "Die eingegebene Zahl " & CStr(intVergleich) &
                " ist zu klein!" & vbCrLf & strWeiter
        Else
            LblInfo.Text = "Die eingegebene Zahl " & CStr(intVergleich) & " ist zu groß!" &
                vbCrLf & strWeiter
        End If
        WerteZuruecksetzen()
    End Sub

    Private Sub CmdNeu_Click(sender As Object, e As EventArgs) Handles CmdNeu.Click
        NeuesSpiel()
    End Sub
    Private Sub WerteZuruecksetzen()
        CmdRichtig.Enabled = False
        TxtEingabe.Text = "0"
        strEingabe = "" : strVergleich = ""
    End Sub
    Private Sub ErzeugeZufallsZahl()
        Dim Random As New Random
        intZufallsZahl = Random.Next(1, 1000)   '-- 1 bis 999
        WerteZuruecksetzen()
        LblInfo.Text = str999
        LblZufall.Text = CStr(intZufallsZahl)   '## nur test
    End Sub
    Private Sub NeuesSpiel()
        WerteZuruecksetzen()
        ErzeugeZufallsZahl()
        intVersuche = 0  ' anzahl der versuche
    End Sub
    Private Sub CmdEnde_Click(sender As Object, e As EventArgs) Handles CmdEnde.Click
        Close()    ' form schließen
    End Sub
End Class
