Randomize Zufallszahlen Problem

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von MisterRieus.

    Randomize Zufallszahlen Problem

    Quellcode

    1. Randomize()
    2. Dim r1 As Random = New Random()
    3. Dim generated1 As Integer = r1.Next(63, 101)
    4. Label74.Text = generated1
    5. Randomize()
    6. Dim r2 As Random = New Random()
    7. Dim generated2 As Integer = r2.Next(37, 101)
    8. Label75.Text = generated2


    Warum ist die erste Zufallszahl in dem Fall also r1 immer größer als die Zufallszahl r2?
    Es müsste doch auch vorkommen, dass r2 größer ist als r1 oder nicht?
    Wenn ich jeweils 10 Zufallszahlen generieren lasse ist r1 immer größer als r2

    Label korrigiert. ~Thunderbolt

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

    @MisterRieus VB6 oder VB.NET?
    Randomize() vs. New Random()
    Dann Option Strict On.
    Und dann so:

    VB.NET-Quellcode

    1. Dim r1 As Random = New Random()
    2. Dim generated1 As Integer = r1.Next(63, 101)
    3. Label74.Text = generated1.ToString()
    4. Dim generated2 As Integer = r1.Next(37, 101)
    5. Label75.Text = generated2.ToString()
    Nimm nur einen Generator, dann ist der Output ordentlich verteilt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich benutze Visual Basic 2010 und kein Option Strict On.

    Mach ich das:

    Quellcode

    1. ​Randomize()
    2. Dim r1 As Random = New Random()
    3. Dim generated1 As Integer = r1.Next(63, 101)
    4. Label74.Text = generated1
    5. Randomize()
    6. Dim r2 As Random = New Random()
    7. Dim generated2 As Integer = r2.Next(37, 101)
    8. Label75.Text = generated2

    Und klicke 8mal auf den Button dann bekomme ich jeweils 8 unterschiedliche Zahlen

    Mach ich aber das:

    Quellcode

    1. ​Dim tor2 As Integer
    2. For tor2 = 1 To Label85.Text
    3. Label87.Text = Label87.Text + 1
    4. Randomize()
    5. Dim r11 As Random = New Random()
    6. Dim generated11 As Integer = r11.Next(1, (Val(Team1Off.Text) + 1))
    7. Label93.Text = Val(generated11)
    8. Dim generated12 As Integer = r11.Next(1, (Val(Team2Def.Text) + 1))
    9. Label94.Text = Val(generated12)
    10. If Val(Label93.Text) > Val(Label94.Text) Then
    11. Label90.Text = Label90.Text + 1
    12. End If
    13. My.Computer.FileSystem.WriteAllText("Team1.txt", Label93.Text & vbNewLine & Label94.Text & vbNewLine & vbNewLine, True)
    14. Next


    Dann bekomme ich 8mal die gleichen Zahlen.

    Bei dem hier auch:

    Quellcode

    1. ​Do Until Label86.text = 8
    2. Label87.Text = Label87.Text + 1
    3. Randomize()
    4. Dim r11 As Random = New Random()
    5. Dim generated11 As Integer = r11.Next(1, (Val(Team1Off.Text) + 1))
    6. Label93.Text = Val(generated11)
    7. Dim generated12 As Integer = r11.Next(1, (Val(Team2Def.Text) + 1))
    8. Label94.Text = Val(generated12)
    9. If Val(Label93.Text) > Val(Label94.Text) Then
    10. Label90.Text = Label90.Text + 1
    11. loop
    12. End If
    13. My.Computer.FileSystem.WriteAllText("Team1.txt", Label93.Text & vbNewLine & Label94.Text & vbNewLine & vbNewLine, True)
    14. Next


    Gibt es nicht was wo ich nur einmal auf den Btton klicke und ich dann trotzdem immer unterschiedliche Zahlen bekomme?
    Ist nicht Sinn der Sache, dass ich z.B. 8mal auf einen Button klicke, damit ich unterschiedliche Zahlen bekomme.
    Danke schonmal im Vorraus.

    MisterRieus schrieb:

    Mach ich aber das:
    Der Fehler sitzt 30 cm vor dem Bildschirm.
    Du hast eine falsche Problemstellung gepostet!
    Pack die Instanziierung des Zufallszahlengenerators aus der Schleife in die Klasse!

    VB.NET-Quellcode

    1. Dim r11 As Random = New Random()

    Es darf nur eine geben!
    Schmeoß das Randomize() raus!
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für die Hilfe und Frohes Neues Jahr wünsche ich.
    Kleine Sache, aber große Auswirkung.

    Jetzt verzweifel ich an folgendem:
    Spoiler anzeigen

    Quellcode

    1. Do Until Label87.Text = Label90.Text
    2. Label87.Text = Label87.Text + 1
    3. Call torchance()
    4. Loop
    5. Loop


    Jetzt müsste der Sub torchance doch 8mal ausgeführt werden, wenn Label90.text = 8 oder?
    Das passiert auch, aber in der Sub werden auch immer wieder die gleichen Zahlen generiert.
    Es werden 11 Zahlen generiert und das 8mal und jedes Mal sind es die gleichen Zahlen
    Das ist der Sub torchance:

    Quellcode

    1. [code] Dim torchance As New Random
    2. Dim Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7, Zahl8, Zahl9, Zahl10, Zahl11 As Integer
    3. Zahl1 = CStr(torchance.Next(Team1Spieler1Stärke.Text, Team1Spieler1Stärke.Text * 3))
    4. Zahl2 = CStr(torchance.Next(Team1Spieler2Stärke.Text, Team1Spieler2Stärke.Text * 3))
    5. Zahl3 = CStr(torchance.Next(Team1Spieler3Stärke.Text, Team1Spieler3Stärke.Text * 3))
    6. Zahl4 = CStr(torchance.Next(Team1Spieler4Stärke.Text, Team1Spieler4Stärke.Text * 3))
    7. Zahl5 = CStr(torchance.Next(Team1Spieler5Stärke.Text, Team1Spieler5Stärke.Text * 3))
    8. Zahl6 = CStr(torchance.Next(Team1Spieler6Stärke.Text, Team1Spieler6Stärke.Text * 3))
    9. Zahl7 = CStr(torchance.Next(Team1Spieler7Stärke.Text, Team1Spieler7Stärke.Text * 3))
    10. Zahl8 = CStr(torchance.Next(Team1Spieler8Stärke.Text, Team1Spieler8Stärke.Text * 3))
    11. Zahl9 = CStr(torchance.Next(Team1Spieler9Stärke.Text, Team1Spieler9Stärke.Text * 3))
    12. Zahl10 = CStr(torchance.Next(Team1Spieler10Stärke.Text, Team1Spieler10Stärke.Text * 3))
    13. Zahl11 = CStr(torchance.Next(Team1Spieler11Stärke.Text, Team1Spieler11Stärke.Text * 3))
    14. If Team1Spieler1Position.Text = "TW" Then
    15. Zahl1 = Zahl1 * 0.2
    16. ElseIf Team1Spieler1Position.Text = "ABW" Then
    17. Zahl1 = Zahl1 * 0.8
    18. ElseIf Team1Spieler1Position.Text = "MIT" Then
    19. Zahl1 = Zahl1 * 1.2
    20. ElseIf Team1Spieler1Position.Text = "ANG" Then
    21. Zahl1 = Zahl1 * 1.4
    22. End If
    23. If Team1Spieler2Position.Text = "TW" Then
    24. Zahl2 = Zahl2 * 0.2
    25. ElseIf Team1Spieler2Position.Text = "ABW" Then
    26. Zahl2 = Zahl2 * 0.8
    27. ElseIf Team1Spieler2Position.Text = "MIT" Then
    28. Zahl2 = Zahl2 * 1.2
    29. ElseIf Team1Spieler2Position.Text = "ANG" Then
    30. Zahl2 = Zahl2 * 1.4
    31. End If
    32. If Team1Spieler3Position.Text = "TW" Then
    33. Zahl3 = Zahl3 * 0.2
    34. ElseIf Team1Spieler3Position.Text = "ABW" Then
    35. Zahl3 = Zahl3 * 0.8
    36. ElseIf Team1Spieler3Position.Text = "MIT" Then
    37. Zahl3 = Zahl3 * 1.2
    38. ElseIf Team1Spieler3Position.Text = "ANG" Then
    39. Zahl3 = Zahl3 * 1.4
    40. End If
    41. If Team1Spieler4Position.Text = "TW" Then
    42. Zahl4 = Zahl4 * 0.2
    43. ElseIf Team1Spieler4Position.Text = "ABW" Then
    44. Zahl4 = Zahl4 * 0.8
    45. ElseIf Team1Spieler4Position.Text = "MIT" Then
    46. Zahl4 = Zahl4 * 1.2
    47. ElseIf Team1Spieler4Position.Text = "ANG" Then
    48. Zahl4 = Zahl4 * 1.4
    49. End If
    50. If Team1Spieler5Position.Text = "TW" Then
    51. Zahl5 = Zahl5 * 0.2
    52. ElseIf Team1Spieler5Position.Text = "ABW" Then
    53. Zahl5 = Zahl5 * 0.8
    54. ElseIf Team1Spieler5Position.Text = "MIT" Then
    55. Zahl5 = Zahl5 * 1.2
    56. ElseIf Team1Spieler5Position.Text = "ANG" Then
    57. Zahl5 = Zahl5 * 1.4
    58. End If
    59. If Team1Spieler6Position.Text = "TW" Then
    60. Zahl6 = Zahl6 * 0.2
    61. ElseIf Team1Spieler6Position.Text = "ABW" Then
    62. Zahl6 = Zahl6 * 0.8
    63. ElseIf Team1Spieler6Position.Text = "MIT" Then
    64. Zahl6 = Zahl6 * 1.2
    65. ElseIf Team1Spieler6Position.Text = "ANG" Then
    66. Zahl6 = Zahl6 * 1.4
    67. End If
    68. If Team1Spieler7Position.Text = "TW" Then
    69. Zahl7 = Zahl7 * 0.2
    70. ElseIf Team1Spieler7Position.Text = "ABW" Then
    71. Zahl7 = Zahl7 * 0.8
    72. ElseIf Team1Spieler7Position.Text = "MIT" Then
    73. Zahl7 = Zahl7 * 1.2
    74. ElseIf Team1Spieler7Position.Text = "ANG" Then
    75. Zahl7 = Zahl7 * 1.4
    76. End If
    77. If Team1Spieler8Position.Text = "TW" Then
    78. Zahl8 = Zahl8 * 0.2
    79. ElseIf Team1Spieler8Position.Text = "ABW" Then
    80. Zahl8 = Zahl8 * 0.8
    81. ElseIf Team1Spieler8Position.Text = "MIT" Then
    82. Zahl8 = Zahl8 * 1.2
    83. ElseIf Team1Spieler8Position.Text = "ANG" Then
    84. Zahl8 = Zahl8 * 1.4
    85. End If
    86. If Team1Spieler9Position.Text = "TW" Then
    87. Zahl9 = Zahl9 * 0.2
    88. ElseIf Team1Spieler9Position.Text = "ABW" Then
    89. Zahl9 = Zahl9 * 0.8
    90. ElseIf Team1Spieler9Position.Text = "MIT" Then
    91. Zahl9 = Zahl9 * 1.2
    92. ElseIf Team1Spieler9Position.Text = "ANG" Then
    93. Zahl9 = Zahl9 * 1.4
    94. End If
    95. If Team1Spieler10Position.Text = "TW" Then
    96. Zahl10 = Zahl10 * 0.2
    97. ElseIf Team1Spieler10Position.Text = "ABW" Then
    98. Zahl10 = Zahl10 * 0.8
    99. ElseIf Team1Spieler10Position.Text = "MIT" Then
    100. Zahl10 = Zahl10 * 1.2
    101. ElseIf Team1Spieler10Position.Text = "ANG" Then
    102. Zahl10 = Zahl10 * 1.4
    103. End If
    104. If Team1Spieler11Position.Text = "TW" Then
    105. Zahl11 = Zahl11 * 0.2
    106. ElseIf Team1Spieler11Position.Text = "ABW" Then
    107. Zahl11 = Zahl11 * 0.8
    108. ElseIf Team1Spieler11Position.Text = "MIT" Then
    109. Zahl11 = Zahl11 * 1.2
    110. ElseIf Team1Spieler11Position.Text = "ANG" Then
    111. Zahl11 = Zahl11 * 1.4
    112. End If
    113. Dim a1() = {Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7, Zahl8, Zahl9, Zahl10, Zahl11}
    114. Dim max, k As Single
    115. max = 0
    116. k = 0
    117. Do
    118. If a1(k) > max Then
    119. max = a1(k)
    120. End If
    121. k = k + 1
    122. Loop Until k > a1.Length - 1
    123. Dim tor As String
    124. tor = max
    125. Label80.Text = k
    126. Dim versuch As New Random
    127. If max = Zahl1 Then
    128. tor = Team1Spieler1Name.Text
    129. Dim Team1Schütze, Team2TW As String
    130. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler1Stärke.Text + 1)))
    131. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    132. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    133. Label82.Text = Team1Schütze
    134. Label83.Text = Team2TW
    135. If Team1Schütze < Val(Team1Spieler1Stärke.Text) * 0.5 Then
    136. Team1Daneben.Text = Team1Daneben.Text + 1
    137. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    138. Else
    139. If Val(Label82.Text) > Val(Label83.Text) Then
    140. Team1Tore.Text = Val(Team1Tore.Text) + 1
    141. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    142. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    143. End If
    144. End If
    145. ElseIf max = Zahl2 Then
    146. tor = Team1Spieler2Name.Text
    147. Dim Team1Schütze, Team2TW As String
    148. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler2Stärke.Text + 1)))
    149. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    150. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    151. Label82.Text = Team1Schütze
    152. Label83.Text = Team2TW
    153. If Team1Schütze < Val(Team1Spieler2Stärke.Text) * 0.5 Then
    154. Team1Daneben.Text = Team1Daneben.Text + 1
    155. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    156. Else
    157. If Val(Label82.Text) > Val(Label83.Text) Then
    158. Team1Tore.Text = Val(Team1Tore.Text) + 1
    159. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    160. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    161. End If
    162. End If
    163. ElseIf max = Zahl3 Then
    164. tor = Team1Spieler3Name.Text
    165. Dim Team1Schütze, Team2TW As String
    166. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler9Stärke.Text + 3)))
    167. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    168. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    169. Label82.Text = Team1Schütze
    170. Label83.Text = Team2TW
    171. If Team1Schütze < Val(Team1Spieler3Stärke.Text) * 0.5 Then
    172. Team1Daneben.Text = Team1Daneben.Text + 1
    173. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    174. Else
    175. If Val(Label82.Text) > Val(Label83.Text) Then
    176. Team1Tore.Text = Val(Team1Tore.Text) + 1
    177. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    178. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    179. End If
    180. End If
    181. ElseIf max = Zahl4 Then
    182. tor = Team1Spieler4Name.Text
    183. Dim Team1Schütze, Team2TW As String
    184. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler4Stärke.Text + 1)))
    185. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    186. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    187. Label82.Text = Team1Schütze
    188. Label83.Text = Team2TW
    189. If Team1Schütze < Val(Team1Spieler4Stärke.Text) * 0.5 Then
    190. Team1Daneben.Text = Team1Daneben.Text + 1
    191. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    192. Else
    193. If Val(Label82.Text) > Val(Label83.Text) Then
    194. Team1Tore.Text = Val(Team1Tore.Text) + 1
    195. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    196. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    197. End If
    198. End If
    199. ElseIf max = Zahl5 Then
    200. tor = Team1Spieler5Name.Text
    201. Dim Team1Schütze, Team2TW As String
    202. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler5Stärke.Text + 1)))
    203. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    204. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    205. Label82.Text = Team1Schütze
    206. Label83.Text = Team2TW
    207. If Team1Schütze < Val(Team1Spieler5Stärke.Text) * 0.5 Then
    208. Team1Daneben.Text = Team1Daneben.Text + 1
    209. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    210. Else
    211. If Val(Label82.Text) > Val(Label83.Text) Then
    212. Team1Tore.Text = Val(Team1Tore.Text) + 1
    213. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    214. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    215. End If
    216. End If
    217. ElseIf max = Zahl6 Then
    218. tor = Team1Spieler6Name.Text
    219. Dim Team1Schütze, Team2TW As String
    220. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler6Stärke.Text + 1)))
    221. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    222. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    223. Label82.Text = Team1Schütze
    224. Label83.Text = Team2TW
    225. If Team1Schütze < Val(Team1Spieler6Stärke.Text) * 0.5 Then
    226. Team1Daneben.Text = Team1Daneben.Text + 1
    227. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    228. Else
    229. If Val(Label82.Text) > Val(Label83.Text) Then
    230. Team1Tore.Text = Val(Team1Tore.Text) + 1
    231. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    232. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    233. End If
    234. End If
    235. ElseIf max = Zahl7 Then
    236. tor = Team1Spieler7Name.Text
    237. Dim Team1Schütze, Team2TW As String
    238. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler7Stärke.Text + 1)))
    239. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    240. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    241. Label82.Text = Team1Schütze
    242. Label83.Text = Team2TW
    243. If Team1Schütze < Val(Team1Spieler7Stärke.Text) * 0.5 Then
    244. Team1Daneben.Text = Team1Daneben.Text + 1
    245. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    246. Else
    247. If Val(Label82.Text) > Val(Label83.Text) Then
    248. Team1Tore.Text = Val(Team1Tore.Text) + 1
    249. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    250. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    251. End If
    252. End If
    253. ElseIf max = Zahl8 Then
    254. tor = Team1Spieler8Name.Text
    255. Dim Team1Schütze, Team2TW As String
    256. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler8Stärke.Text + 1)))
    257. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    258. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    259. Label82.Text = Team1Schütze
    260. Label83.Text = Team2TW
    261. If Team1Schütze < Val(Team1Spieler8Stärke.Text) * 0.5 Then
    262. Team1Daneben.Text = Team1Daneben.Text + 1
    263. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    264. Else
    265. If Val(Label82.Text) > Val(Label83.Text) Then
    266. Team1Tore.Text = Val(Team1Tore.Text) + 1
    267. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    268. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    269. End If
    270. End If
    271. ElseIf max = Zahl9 Then
    272. tor = Team1Spieler9Name.Text
    273. Dim Team1Schütze, Team2TW As String
    274. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler9Stärke.Text + 1)))
    275. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    276. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    277. Label82.Text = Team1Schütze
    278. Label83.Text = Team2TW
    279. If Team1Schütze < Val(Team1Spieler9Stärke.Text) * 0.5 Then
    280. Team1Daneben.Text = Team1Daneben.Text + 1
    281. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    282. Else
    283. If Val(Label82.Text) > Val(Label83.Text) Then
    284. Team1Tore.Text = Val(Team1Tore.Text) + 1
    285. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    286. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    287. End If
    288. End If
    289. ElseIf max = Zahl10 Then
    290. tor = Team1Spieler10Name.Text
    291. Dim Team1Schütze, Team2TW As String
    292. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler10Stärke.Text + 1)))
    293. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    294. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    295. Label82.Text = Team1Schütze
    296. Label83.Text = Team2TW
    297. If Team1Schütze < Val(Team1Spieler10Stärke.Text) * 0.5 Then
    298. Team1Daneben.Text = Team1Daneben.Text + 1
    299. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    300. Else
    301. If Val(Label82.Text) > Val(Label83.Text) Then
    302. Team1Tore.Text = Val(Team1Tore.Text) + 1
    303. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    304. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    305. End If
    306. End If
    307. ElseIf max = Zahl11 Then
    308. tor = Team1Spieler11Name.Text
    309. Dim Team1Schütze, Team2TW As String
    310. Team1Schütze = CStr(versuch.Next(0, (Team1Spieler11Stärke.Text + 1)))
    311. Team2TW = CStr(versuch.Next(0, Team2Spieler1Stärke.Text * 1.5))
    312. My.Computer.FileSystem.WriteAllText("Schütze.txt", Team1Schütze & vbNewLine & Team2TW & vbNewLine & vbNewLine, True)
    313. Label82.Text = Team1Schütze
    314. Label83.Text = Team2TW
    315. If Team1Schütze < Val(Team1Spieler11Stärke.Text) * 0.5 Then
    316. Team1Daneben.Text = Team1Daneben.Text + 1
    317. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - DANEBEN!")
    318. Else
    319. If Val(Label82.Text) > Val(Label83.Text) Then
    320. Team1Tore.Text = Val(Team1Tore.Text) + 1
    321. ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - TOR!")
    322. Else : ListBox1.Items.Add(Spielzeit.Text + "min. Torchance für " + tor + " (" + Team1.Text + ") - GEHALTEN!")
    323. End If
    324. End If
    325. End If
    326. [/code][/spoiler]


    Wahrscheinlich wieder eine einfache Sache, aber ich finde den Fehler nicht.
    Bin für jede Hilfe dankbar.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MisterRieus“ ()

    MisterRieus schrieb:

    VB.NET-Quellcode

    1. Label87.Text = Label87.Text + 1
    Hör sofort mit diesem Unfug auf :!:
    Was, wenn in dem Label "Roulade mit Klößen" steht? Soll da als Ergebnis eine Roulade oder ein Kloß oder eine Kelle Soße dazu kommen?
    Mach Option Strict On!
    Trenne Daten und GUI!
    Daten sind angepasste numerische Werte, mit denen gerechnet werden kann, GUI-Elemente dienen der Anzeige und dem Editieren dieser Daten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    MisterRieus schrieb:

    VB.NET-Quellcode

    1. Zahl1 = CStr(torchance.Next(Team1Spieler1Stärke.Text, Team1Spieler1Stärke.Text * 3))
    Solch Zeugs sehe ich mir nicht an, weil Option Strict Off.
    Du musst das zunächst in Strict On konvertieren und überprüfen, ob da der Effekt immer noch auftaucht.
    Sorry.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    1. Bitte in Post#5 nen Spoiler verwenden (das Augensymbol).

    ca. 400 Zeilen Code durchzuscrollen, um an den nächsten Post zu kommen, ist unschön.
    2. bitte den VB.Net-Button für den Code verwenden (rechts) und NICHT den allgemeinen Codebutton (links rot durchgestrichen). Damit Syntax-Highlighting aktiv ist.
    3. Was war an Post#4 nicht zu verstehen?
    "Das ist der Sub torchance:" Die Codezeile#1 wird bei jedem Aufruf der Sub ausgeführt. Also mehrfach. Das.Darf.Nicht.Sein. Diese Zeile darf im gesamten Code nur ein einziges Mal überhaupt aufgerufen werden, sonst kannst Du Zufallszahlen vergessen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Nabend,
    hab den langen Beitrag als Spoiler gemacht.
    Werde in Zukunft den richtigen Button benutzen.
    Hab es jetzt verstanden und umgesetzt und siehe da es funktioniert. Vielen Dank

    VB.NET-Quellcode

    1. If Spielart.Text = "Liga" Then
    2. My.Computer.FileSystem.WriteAllText(".\Statistiken\Liga\Tore.txt", tor + " (" + Team1.Text + ")" & vbNewLine, True)
    3. ElseIf Spielart.Text = "Pokal" Then
    4. My.Computer.FileSystem.WriteAllText(".\Statistiken\Pokal\Tore.txt", tor + " (" + Team1.Text + ")" & vbNewLine, True)
    5. ElseIf Spielart.Text = "Kaltza-Kup" Then
    6. My.Computer.FileSystem.WriteAllText(".\Statistiken\Kaltza-Kup\Tore.txt", tor + " (" + Team1.Text + ")" & vbNewLine, True)
    7. ElseIf Spielart.Text = "Kalle-Kup" Then
    8. My.Computer.FileSystem.WriteAllText(".\Statistiken\Kalle-Kup\Tore.txt", tor + " (" + Team1.Text + ")" & vbNewLine, True)
    9. ElseIf Spielart.Text = "Deathmatch" Then
    10. My.Computer.FileSystem.WriteAllText(".\Statistiken\Deathmatch\Tore.txt", tor + " (" + Team1.Text + ")" & vbNewLine, True)
    11. ElseIf Spielart.Text = "Hallenmasters" Then
    12. My.Computer.FileSystem.WriteAllText(".\Statistiken\Pokal\Tore.txt", tor + " (" + Team1.Text + ")" & vbNewLine, True)
    13. Else
    14. End If


    Mit diesem Code wird der Torschütze in diesem Fall die Variable "tor" in die entsprechende txt Datei gespeichert. Wenn der gleiche Spieler nochmal ein Tor schießt, dann steht der Spieler 2x in der txt Datei.
    Wenn der Spieler noch ein Tor schießt steht dieser dann 3x in der txt Datei.
    So sieht dann die txt Datei aus:
    Ohzora (Barcelona Strikers)
    Schneider (Barcelona Strikers)
    Ohzora (Barcelona Strikers)
    Schester (Barcelona Strikers)
    Bunnaku (Barcelona Strikers)
    Schneider (Barcelona Strikers)

    Wie ist es am einfachsten möglich, dass der Spieler nur 1x in der Liste vorkommt, dafür dann hinter oder eine Zeile tiefer die entsprechende Anzahl Tore steht?

    MisterRieus schrieb:

    Wie ist es am einfachsten möglich
    Merke Dir die Daten nicht in einer Datei sondern in je einer Klasse, die Du dann am Ende XML-Serialisierst, dann kannst Du sie wieder einlesen und weiterspielen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Dann frage ich mal lieber anders,da ich mich mit XML nicht auseinandergesetzt habe. Wie ist es mit einer txt am einfachsten zu lösen?
    Sagen wir mal die txt datei hat 60 Einträge:
    Spoiler anzeigen
    Reus
    Reus
    Müller
    Kroos
    Özil
    Kroos
    Özil
    Gomez
    Gomez
    Reus
    Müller
    Reus
    Reus
    Müller
    Kroos
    Özil
    Kroos
    Özil
    Gomez
    Gomez
    Reus
    Müller
    Reus
    Reus
    Müller
    Kroos
    Özil
    Kroos
    Özil
    Gomez
    Gomez
    Reus
    Müller
    Reus
    Reus
    Müller
    Kroos
    Özil
    Kroos
    Özil
    Gomez
    Gomez
    Reus
    Müller
    Reus
    Reus
    Müller
    Kroos
    Özil
    Kroos
    Özil
    Gomez
    Gomez
    Reus
    Müller
    Reus
    Reus
    Müller
    Kroos
    Özil


    Jetzt möchte ich wissen wie viele verschiedene Einträge in der Liste sind und auch wie oft die einzelnen Einträge in der Liste sind so dass am Ende eine Liste wie folgt entsteht:
    Reus 23
    Müller 21
    Kroos 13
    Özil 9
    Gomez 4

    Es kann auch gerne eine neue txt Datei sein.
    eine Gruppierung also.

    VB.NET-Quellcode

    1. strings = "Reus Reus Müller Kroos Özil Kroos Özil Gomez Gomez Reus Müller Reus Reus Müller Kroos Özil Kroos Özil Gomez Gomez Reus Müller Reus Reus Müller Kroos Özil Kroos Özil Gomez Gomez Reus Müller Reus Reus Müller Kroos Özil Kroos Özil Gomez Gomez Reus Müller Reus Reus Müller Kroos Özil Kroos Özil Gomez Gomez Reus Müller Reus Reus Müller Kroos Özil".Split
    2. Dim groups2 = From s In strings Group s By s Into Count()
    3. For Each gr In groups2
    4. MessageBox.Show(String.Format("{0}: {1}", gr.s, gr.Count))
    5. Next

    @MisterRieus Ich sehe jetzt keinen Zusammenhang zwischen dem Group-Problem und dem Thread-Titel.
    Falls das zusammengehört, solltest Du mal eine umfassende Problembeschreibung / Aufgabenstelung formulieren.
    Falls nicht, wäre ein separater Thread angebracht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!