virtuellen würfel erstellen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von .Phil.

    virtuellen würfel erstellen

    HEY

    will nen virtuellen würfel erstellen :D

    dabei soll wenn ich die taste wüfeln drücke auf dem wüfel die augen 1-6 zufällig erscheinen (per zufallgenerator)
    und unten sollen die einzelnen zahlen die gewürfelt worden sind mitgezählt werden

    ich hab das ganze schon ma so ähnlich in vb6 gemacht aber des funzt garnich in 08 iwie
    Bilder
    • 11.JPG

      33,18 kB, 598×524, 411 mal angesehen
    sowas hat ich bei vb 6



    VB.NET-Quellcode

    1. Dim a
    2. Private Sub beenden_Click()
    3. End
    4. End Sub
    5. Private Sub druecken_Click()
    6. Cls
    7. Randomize
    8. Let a = Int(Rnd() * 6) + 1
    9. Print a
    10. If a = 1 Then
    11. w1.Visible = True
    12. w2.Visible = False
    13. w3.Visible = False
    14. w4.Visible = False
    15. w5.Visible = False
    16. w6.Visible = False
    17. w7.Visible = False
    18. t1.Text = t1.Text + 1
    19. ElseIf a = 2 Then
    20. w1.Visible = True
    21. w2.Visible = True
    22. w3.Visible = False
    23. w4.Visible = False
    24. w5.Visible = False
    25. w6.Visible = False
    26. w7.Visible = False
    27. t2.Text = t2.Text + 1
    28. ElseIf a = 3 Then
    29. w1.Visible = True
    30. w2.Visible = False
    31. w3.Visible = False
    32. w4.Visible = False
    33. w5.Visible = False
    34. w6.Visible = True
    35. w7.Visible = True
    36. t3.Text = t3.Text + 1
    37. ElseIf a = 4 Then
    38. w1.Visible = True
    39. w2.Visible = True
    40. w3.Visible = False
    41. w4.Visible = False
    42. w5.Visible = True
    43. w6.Visible = True
    44. w7.Visible = False
    45. t4.Text = t4.Text + 1
    46. ElseIf a = 5 Then
    47. w1.Visible = True
    48. w2.Visible = True
    49. w3.Visible = False
    50. w4.Visible = False
    51. w5.Visible = True
    52. w6.Visible = True
    53. w7.Visible = True
    54. t5.Text = t5.Text + 1
    55. ElseIf a = 6 Then
    56. w1.Visible = True
    57. w2.Visible = True
    58. w3.Visible = True
    59. w4.Visible = True
    60. w5.Visible = True
    61. w6.Visible = True
    62. w7.Visible = False
    63. t6.Text = t6.Text + 1
    64. End If
    65. End Sub
    66. Private Sub Text1_Change()
    67. End Sub
    hallo psychrunner,

    nicht sehr elegant - aber das ist hier ja nicht das problem.

    normalerweise verwendet man unter vb.net die random-klasse.
    randomize sollte aber auch funktionieren.

    sehe auf anhieb nichts was nicht gehen könnte.

    was genau macht dein prog denn falsch ?

    gruss

    mikeb69
    habs jetzt so für alle dies auch machen wollen is zwar n wenig umständlich aber geht ^^

    VB.NET-Quellcode

    1. Public Class Würfel
    2. Dim dice As Integer
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. dice = (Int(6 * Rnd()) + 1)
    5. If dice = 1 Then
    6. w1.Visible = False
    7. w2.Visible = False
    8. w3.Visible = False
    9. w5.Visible = False
    10. w6.Visible = False
    11. w7.Visible = False
    12. w4.Visible = True
    13. t1.Text = t1.Text + 1
    14. ElseIf dice = 2 Then
    15. w2.Visible = False
    16. w3.Visible = False
    17. w4.Visible = False
    18. w5.Visible = False
    19. w6.Visible = False
    20. w1.Visible = True
    21. w7.Visible = True
    22. t2.Text = t2.Text + 1
    23. ElseIf dice = 3 Then
    24. w2.Visible = False
    25. w3.Visible = False
    26. w5.Visible = False
    27. w6.Visible = False
    28. w1.Visible = True
    29. w4.Visible = True
    30. w7.Visible = True
    31. t3.Text = t3.Text + 1
    32. ElseIf dice = 4 Then
    33. w3.Visible = False
    34. w4.Visible = False
    35. w5.Visible = False
    36. w1.Visible = True
    37. w2.Visible = True
    38. w6.Visible = True
    39. w7.Visible = True
    40. t4.Text = t4.Text + 1
    41. ElseIf dice = 5 Then
    42. w3.Visible = False
    43. w5.Visible = False
    44. w1.Visible = True
    45. w2.Visible = True
    46. w4.Visible = True
    47. w6.Visible = True
    48. w7.Visible = True
    49. t5.Text = t5.Text + 1
    50. ElseIf dice = 6 Then
    51. w4.Visible = False
    52. w1.Visible = True
    53. w2.Visible = True
    54. w3.Visible = True
    55. w5.Visible = True
    56. w6.Visible = True
    57. w7.Visible = True
    58. t6.Text = t6.Text + 1
    59. End If
    60. End Sub
    61. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    62. Timer1.Enabled = True
    63. End Sub
    64. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    65. Timer1.Enabled = False
    66. End Sub
    67. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    68. t1.Text = "0"
    69. t2.Text = "0"
    70. t3.Text = "0"
    71. t4.Text = "0"
    72. t5.Text = "0"
    73. t6.Text = "0"
    74. w1.Visible = False
    75. w2.Visible = False
    76. w3.Visible = False
    77. w4.Visible = False
    78. w5.Visible = False
    79. w6.Visible = False
    80. End Sub
    81. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    82. dice = (Int(6 * Rnd()) + 1)
    83. If dice = 1 Then
    84. w1.Visible = False
    85. w2.Visible = False
    86. w3.Visible = False
    87. w5.Visible = False
    88. w6.Visible = False
    89. w7.Visible = False
    90. w4.Visible = True
    91. t1.Text = t1.Text + 1
    92. ElseIf dice = 2 Then
    93. w2.Visible = False
    94. w3.Visible = False
    95. w4.Visible = False
    96. w5.Visible = False
    97. w6.Visible = False
    98. w1.Visible = True
    99. w7.Visible = True
    100. t2.Text = t2.Text + 1
    101. ElseIf dice = 3 Then
    102. w2.Visible = False
    103. w3.Visible = False
    104. w5.Visible = False
    105. w6.Visible = False
    106. w1.Visible = True
    107. w4.Visible = True
    108. w7.Visible = True
    109. t3.Text = t3.Text + 1
    110. ElseIf dice = 4 Then
    111. w3.Visible = False
    112. w4.Visible = False
    113. w5.Visible = False
    114. w1.Visible = True
    115. w2.Visible = True
    116. w6.Visible = True
    117. w7.Visible = True
    118. t4.Text = t4.Text + 1
    119. ElseIf dice = 5 Then
    120. w3.Visible = False
    121. w5.Visible = False
    122. w1.Visible = True
    123. w2.Visible = True
    124. w4.Visible = True
    125. w6.Visible = True
    126. w7.Visible = True
    127. t5.Text = t5.Text + 1
    128. ElseIf dice = 6 Then
    129. w4.Visible = False
    130. w1.Visible = True
    131. w2.Visible = True
    132. w3.Visible = True
    133. w5.Visible = True
    134. w6.Visible = True
    135. w7.Visible = True
    136. t6.Text = t6.Text + 1
    137. End If
    138. End Sub
    139. End Class
    Hallo,
    hab jetzt nurmal so schnell drübergeschaut.
    Du könntest die If-Abfragen in eine eigene Sub packen und diese dann beim Button-Klick bzw Timer-Tick aufrufen. Das wäre wenigestens etwas übersichtlicher und weniger Code...
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Moin sehr zu empfehlen wäre auch das Setzten der Sichtbarkeit in eine eigene Sub zu verschieben, die dann 7 boolean Parameter erwartet, das spart eine menge Schreiberei:

    VB.NET-Quellcode

    1. private sub SetVis (ByVal bVis1 as Boolean ...)
    2. ' Hier deine Sichtbarkeit hinkopieren ala
    3. w1.Visible = bVis1
    4. end sub


    Grüße
    Phil

    edit: Statt ElseIf würde ich ein Select Staement verwenden, ist übersichtlicher
    Liest du eigentlich Beiträg nicht ganz durch?
    Schau mal was ich genau obendran geschrieben habe...
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Sorry, aber was kann man da anders verstehen? ^^
    Was hast du es denn gedacht das ich meine?
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Du könntest die If-Abfragen in eine eigene Sub packen und diese dann beim Button-Klick bzw Timer-Tick aufrufen.
    ->

    VB.NET-Quellcode

    1. sub Abfragen ()
    2. dice = (Int(6 * Rnd()) + 1)
    3. If dice = 1 Then
    4. '...
    5. ElseIf dice = 2 Then
    6. '...
    7. ElseIf dice = 3 Then
    8. '...
    9. ElseIf dice = 4 Then
    10. '...
    11. ElseIf dice = 5 Then
    12. '...
    13. ElseIf dice = 6 Then
    14. '...
    15. End If
    16. end sub
    17. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    18. '...
    19. Abfragen ()
    20. End Sub
    21. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    22. Abfragen ()
    23. End Sub


    Sowas zum Beispiel.

    Bring immerhin eine Codeersparnis von ~50%. Ist definitiv nicht die cleverste Lösung, war aber das was ich beim Überfliegen deines Posts verstanden habe :).

    Grüße
    Phil