vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Vb.net Problem beim Losen von Gegnern (Boule Spiel) 
Autor: nacramell
Datum: 18.06.08 13:58

Hallo bin neu hier und hab ein Problem mit meinem Programm

bin eigentlich schon ein bisschen Erfahren aber dieses Problem bekomm ich nicht in den Griff

Mein programm lost Gegner für ein Boule Spiel in diesem gibt es 4 Runden und in jeder MUSS jede Manschaft einen neuen Gegner haben also hab ich ein Array wo alle Gegner eingespeichert werden

mitten drinne hängt sich das Programm KOMPLETT auf und ich muss es durch Taskmanager Schließen
das ganze passiert aber nicht immer nur Manchmal ! das liegt wol daran das das Programm Zufalls zahlen nimmt und in das Array schreibt und wenn es dann z.b. in der Vierten Runde ist und Überprüft ob die Manschaft den Gegner schon hatte aber keine Neue Zahl mehr nehmen kann( alle anderen sind schon vergeben) hängt es in der Do loop schleife und macht nichtmehr weiter
Dim Gegner(200) as integer' 1- 50 Runde1 51-100 Runde 2 101-150 Runde3 151-200 
' Runde4
die ganze Ausloseung funktioniert über ein Random zahl

DAS ist warscheinlich das Problem !!!
wenn es eine bessere Methode gibt bitte sagt sie mir !

Dazu hab ich eine Liste um zu überprüfen ob die Zahl schon gezogen wurde und eine random Zahl

Dim oZahl As New System.Random ' Später für die zufallszahl
Dim oList As New SortedList  ' Liste für runde 1
Dim oList1 As New SortedList ' Liste für runde 2
Dim oList2 As New SortedList ' Liste für runde 3
Dim oList3 As New SortedList ' Liste für runde 4
jetzt die erste Runde
For i = 1 To AnzManschaften
            Do
                Randomize() ' damit ist es warscheinlicher das nicht zweimal 
                ' die gleiche zusammen setzung beim Losen entsteht
                b = AnzManschaften + 1
                Gegner1 = oZahl.Next(1, b) ' Zufällige zahl von 1 und Anzahl 
                ' der Manschaften !
                If Not oList.ContainsValue(Gegner1) Then ' wenn gegner noch 
                ' nicht gezogen dann
                    oList.Add(Gegner1, Gegner1) ' schreibe ihn in die Liste
                    Gegner(i) = Gegner1 ' und in das Array
 
                    Exit Do ' Nächster Gegner
                End If ' Fals nicht nochmal Losen
                MsgBox(Gegner(i))
            Loop
Next
das Funktioniert ganz gut dort auch ohne hänger
(durch die msgbox weis ich wann im Programm der Fehler auftritt)

Runde zwei geht auch dort noch keinen Hänger

Die Dritte und Vierte runde sind das Problem Zufällig hängt sich das Programm entweder in der Dritten oder Vierten Runde auf
Dritte
        For i = 1 To AnzManschaften
            Do
                Randomize()
                b = AnzManschaften + 1
                Gegner1 = oZahl.Next(1, b) ' Zufällige zahl von 1 und Anzahl 
                ' der Manschaften !
                If Not oList1.ContainsValue(Gegner1) Then ' wenn gegner noch 
                ' nicht gezogen dann
                    If Not Gegner1 = Gegner(i) Then ' Darf Dieser Gegner nicht 
                    ' der Gegner von Letzter Runde sein !! dann
                        oList1.Add(Gegner1, Gegner1) ' schreibe ihn in die Liste
                        Gegner(i + 50) = Gegner1 ' und in das Array
 
                        Exit Do ' Nächster Gegner
                    End If
                End If ' Fals nicht nochmal Losen
                MsgBox(Gegner(i))
            Loop
        Next
und die Vierte
        For i = 1 To AnzManschaften
            Do
                Randomize()
                b = AnzManschaften + 1
                Gegner1 = oZahl.Next(1, b) ' Zufällige zahl von 1 und Anzahl 
                ' der Manschaften !
                If Not oList2.ContainsValue(Gegner1) Then ' wenn gegner noch 
                ' nicht gezogen dann
                    If Not Gegner1 = Gegner(i) Then ' Darf Dieser Gegner nicht 
                    ' der Gegner von Runde 1 sein !! dann
                        If Not Gegner1 = Gegner(i + 50) Then ' Darf Dieser 
                        ' Gegner nicht der Gegner von Runde 2 sein !! dann
                            oList2.Add(Gegner1, Gegner1) ' schreibe ihn in die 
                            ' Liste
                            Gegner(i + 100) = Gegner1 ' und in das Array
 
                            Exit Do ' Nächster Gegner
                        End If
                    End If
                End If ' Fals nicht nochmal Losen
                MsgBox(Gegner(i))
            Loop
 
        Next
Dort Irgendwo hängt es sich auf

Wär echt super wenn ihr mir helfen könntet

Wenn ihr eine andere Methode wisst sagt sie z.b. zum Auslosen oder überpüfen der Gegner

Danke schonmal
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Vb.net Problem beim Losen von Gegnern (Boule Spiel)844nacramell18.06.08 13:58

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel