Visual Basic

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von yxx, 25. November 2005 .

Schlagworte:
  1. 25. November 2005
    Also ich muss für die Schule ein Programm in Visual Basic programmieren. Hier die Aufgabenstellung:

    Zahlenspiel

    Per Zufall ermittelt das Programm eine Zahl zwischen 0 und 1000. Der Anwender gibt nun eine Zahl ein und betätigt den Button "Zahl annehmen".

    - Ist die eingegebe Zahl größer als die gesuchte Zufallszahl, wird der folgende Text ausgegeben: "Die gesuchte Zahl ist kleiner"

    - Ist die eingegebe Zahl kleiner als die gesuchte Zufallszahl, wird der folgende Text ausgegeben: "Die gesuchte Zahl ist größer"

    - Ist die eingegebe Zahl gleich der gesuchten Zufallszahl, wird der folgende Text ausgegeben: "Du hast gewonnen!"

    Nach 10 misslungen Versuchen soll der Button "Zahl annehmen" deaktiviert werden.

    Wenn man auf Neustart klickt, soll eine neue Zufallszahl generiert werden und der Anzahl der Versuche auf 0 gesetzt werden und der Button "Zahl annehmen" wieder aktiviert werden.

    Code zum generieren einer Zufallszahl:

    Code:
    Dim zahl1
    
    Randomize
    zahl1 = Int((1000 * Rnd) +1)
    


    Soo.

    Wenn ich das Programm starte wird automatisch eine Zufallszahl generiert:

    Code:
    Private Sub Form_Load()
    Dim zahl1
    Randomize
    zahl1 = Int((1000 * Rnd) + 1)
    End Sub
    
    So. Ich hoffe das is verstanden.

    Wenn ich auf Zahl annehmen klicke funktioniert es einfach nicht. Das Problem das er hochzählt und so ist nicht da. Es geht viel mehr darum, dass das Programm erkennt das der Versuch richtig, oder zu klein oder zu groß ist.

    Das sieht bei mir (falsch natürlich) so aus:

    Code:
    Private Sub Command2_Click()
    If Text1.Text = zahl1 Then
    Label3.Caption = "RICHTIG! Du hast gewonnen!"
    End If
    
    If Text1.Text < zahl1 Then
    Label3.Caption = "Zahl zu klein! Bitte größere Zahl eingeben!"
    End If
    
    If Text1.Text > zahl1 Then
    Label3.Caption = "Zahl zu groß! Bitte kleinere Zahl eingeben!"
    End If
    End Sub
    
    Definitionen:

    Ausgabefeld (ob der Versuch oder so richtig/falsch is) = Label3
    Textfeld zum Eingeben der Zahl = Text1
    Neustart: command1
    Zahl annehmen: command2

    Das Problem ist also der Teil wo das Programm erkennt ob die Zahl richtig oder so is.

    Kann mir jemand ein paar Tips geben?
     
  2. 25. November 2005
    Code:
    'global deklariern damit es in allen Funktionen verwendet werden kann
    Dim err As Integer
    Dim zahl1 As Integer
    
    Private Sub Command1_Click()
    Randomize
    zahl1 = Int((1000 * Rnd) + 1)
    'fehler zurücksetzen
    err = 0
    End Sub
    
    Private Sub Form_Load()
    Randomize
    zahl1 = Int((1000 * Rnd) + 1)
    'fehler zurücksetzen
    err = 0
    End Sub
    
    Private Sub Command2_Click()
    
    'val() da mit zahlen und nicht mit texten gerechnet wird
    If Val(Text1.Text) = zahl1 Then
    Label3.Caption = "RICHTIG! Du hast gewonnen!"
    End If
    
    'val() da mit zahlen und nicht mit texten gerechnet wird
    If Val(Text1.Text) < zahl1 Then
    Label3.Caption = "Zahl zu klein! Bitte größere Zahl eingeben!"
    'fehler hochzählen
    err = err + 1
    End If
    
    'val() da mit zahlen und nicht mit texten gerechnet wird
    If Val(Text1.Text) > zahl1 Then
    Label3.Caption = "Zahl zu groß! Bitte kleinere Zahl eingeben!"
    'fehler hochzählen
    err = err + 1
    End If
    'fehleranzahl überprüfen
    If err = 10 Then End
    End Sub
    
    
    
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.