Bestimmte Codezeilen wiederholen lassen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Phil_man.

    Bestimmte Codezeilen wiederholen lassen

    Hi,
    Ich habe meinen Zufalls Kopfrechner nun fast fertig, jedoch gibt es noch ein Problem, wenn die Aufgabe richtig ist, bekommt man einen Punkt und die Zeit wird resettet. Soweit, sogut, aber die neue aufgabe ist dann immer die gleiche. Das liegt wahrscheinlich daran, dass ich da überall return hingemacht haben.

    Nun die Frage ist, kann ich das auch anders Wiederholen lassen? Also ohne Return z.B?
    Bitte Bsp ausfüllen:

    VB.NET-Quellcode

    1. If zeit = 10 then
    2. ' HIER den Code pls einfügen
    3. End If


    Vielen Dank schonmal ^^
    Mhm, ich poste mal den Code, er ist zum Glück noch net so lange. Und nicht wundern, den Ordne ich wenn alles funktioniert. Und lösche alles unnötige dann auch ^^.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim rn As New Random
    3. Dim a As Double = rn.Next(0, 20)
    4. Dim b As Double = rn.Next(0, 20)
    5. Dim richtig As Integer
    6. Dim g As String
    7. Dim f As Double
    8. Dim c As Double
    9. Dim inte As Integer
    10. Dim lange As Long
    11. Dim strArr() As String = {"+", "-", "*", "/"}
    12. Dim re As String
    13. Dim zufallsOperator As Integer
    14. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    15. Timer1.Start()
    16. End Sub
    17. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    18. zufallsOperator = rn.Next(1, 4)
    19. Select Case strArr(zufallsOperator)
    20. Case "+"
    21. c = a + b
    22. Case "-"
    23. c = a - b
    24. Case "*"
    25. c = a * b
    26. Case "/"
    27. c = a / b
    28. If a < b Then Return
    29. End Select
    30. TextBox1.Text = a
    31. TextBox2.Text = strArr(zufallsOperator)
    32. TextBox3.Text = b
    33. TextBox5.Text = c
    34. lange = TextBox5.Text.Contains(".") Or TextBox5.Text.Contains(",") Or TextBox5.Text.Contains("-")
    35. If lange Then
    36. Return
    37. Else
    38. Timer2.Start()
    39. Timer3.Start()
    40. End If
    41. End Sub
    42. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    43. Timer1.Stop()
    44. g = TextBox4.Text
    45. f = Val(g)
    46. Dim test As Long
    47. test = TextBox1.Text.Contains(".")
    48. If test = f Then Return
    49. If f = c Then
    50. Timer2.Stop()
    51. Timer3.Stop()
    52. richtig += 1
    53. Label7.Text = richtig
    54. TextBox1.Text = ""
    55. TextBox2.Text = ""
    56. TextBox3.Text = ""
    57. TextBox4.Text = ""
    58. Timer1.Start()
    59. Else
    60. Return
    61. End If
    62. End Sub
    63. Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
    64. inte += 1
    65. Label6.Text = inte
    66. If inte = 10 Then
    67. MsgBox("Leider verloren du hast " & richtig & " richtige aufgaben hintereinander gelösst")
    68. Timer2.Stop()
    69. Timer3.Stop()
    70. richtig = 0
    71. inte = 0
    72. End If
    73. End Sub
    74. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    75. Timer1.Start()
    76. End Sub
    77. End Class


    EDIT: Ich habe jetzt noch was probiert aber es geht immer noch net. O.o

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Phil_man“ ()

    Versuch mal meine Antwort von gestern als Grundgerüst zu nehmen, da werden bei Button1_click alle aufgaben neu gestellt. Bzw. sieh es dir mal genau an, und überleg, wieso ich die Variablendeklaration und die Wertezuweisung in unterschiedlichen Bereichen durchführe.