#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? + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren