developers-forum.de

Normale Version: Visual Basic .net Auslosung ohne Doppelte Gegner
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo erst mal
ich hät da mal gern ein Problem

da ist so ein Code der will net so wie ich will
Erst mal die Erklärung was er Tuhen soll

Also ich schreib an einem Boule Programm (Boule ist ein Spiel mit Kugeln die man an eine Bestimmte (kleinere) Kugel so nah wie möglich legen muss) so dieses Programm soll nun Auslosen wer gegen wen Spielt.

und da ist ein problem das erste habe ich wol gelöst mit diesem Code (er soll verhindern das die Gleichern Manschaften nochmal gegen einander SPielen)

Code:
For i = 1 To AnzManschaften
            Do
                Randomize()
                Dim Gegner1 As String
                Dim b As Integer
                b = AnzManschaften + 1
                Gegner1 = oZahl.Next(1, b) ' Zufällige zahl von 1 und Anzahl der Manschaften !
                If Not oList.ContainsValue(Gegner1) Then
                    oList.Add(Gegner1, Gegner1)
                    Gegner(i) = Gegner1
                    Exit Do
                End If
            Loop
        Next

Das funktioniert ohne Probleme (vll gibt es eine Bessere Lösung aber egal) das ist nicht das Poblem ^^

das problem liegt hier
Ich habe ein Array das beim Start des Programmes den Wert Anzahl der Manschaften bekommt also wenn es 4 Manschaften sind ist das Array
dim AnzManschaften(4) as integer
und jetzt hab ich 30 Textboxen in die Später die Manschafts Nummern Rein kommen d.h. 1-4.
Um nicht später das problem mit FAlscher Index des Arrays oder so zu begegnen schreib ich am Anfang in jedes Array dingens (kann mir mal einer sagen wie das heist !!)
"0" rein
heist

Code:
For i = 1 To 30
        Gegner(i) = 0
        Next

so jetzt schreib ich in die Textboxen folgendes rein

Code:
TextBox1.Text = Gegner(1)
        TextBox2.Text = Gegner(2)
        TextBox3.Text = Gegner(3)
        TextBox4.Text = Gegner(4)
        TextBox5.Text = Gegner(5)
        TextBox6.Text = Gegner(6)
        TextBox7.Text = Gegner(7)
        TextBox8.Text = Gegner(8)
        TextBox9.Text = Gegner(9)
        TextBox10.Text = Gegner(10)
        TextBox11.Text = Gegner(11)
        TextBox12.Text = Gegner(12)
        TextBox13.Text = Gegner(13)
        TextBox14.Text = Gegner(14)
        TextBox15.Text = Gegner(15)
        TextBox16.Text = Gegner(16)
        TextBox17.Text = Gegner(17)
        TextBox18.Text = Gegner(18)
        TextBox19.Text = Gegner(19)
        TextBox20.Text = Gegner(20)
        TextBox21.Text = Gegner(21)
        TextBox22.Text = Gegner(22)
        TextBox23.Text = Gegner(23)
        TextBox24.Text = Gegner(24)
        TextBox25.Text = Gegner(25)
        TextBox26.Text = Gegner(26)
        TextBox27.Text = Gegner(27)
        TextBox28.Text = Gegner(28)
        TextBox29.Text = Gegner(29)
        TextBox30.Text = Gegner(30)

Sollte klar sein das das Die Nummern der Gegner sind die Ausgelost worden sind
nur hab ich jetzt in den Textboxen die nicht benutzt werden
in unserem Fall werden Plos textbox1-4 benutzt- "0" Drinn stehen das ist halt ein Schönheits Fehler den ich gerne NICHT hätte !!

Freu mich wenn ihr Antwortet Bitte wär echt super wenn es nicht mehr wär Problem
EINEM INTEGER KANN MAN NICHT KEINEN INHALT ZUWEISEN (oder ??)
sonst wär das kein Problem ^^XD

Abend,

du könntest ja eine if-Abfrage einbauen, die in TextBox i "nicht belegt" reinschreibt, wenn Gegner(i) = 0 ist.


N43
Das mit Textboxi.text (fals du das so änlich gemeint hast) funktioniert net

Also

Code:
dim i as integer
dim Gegner(200) as integer

for i = 1 to 200
    if Gegner(i) = 0 then
        Textboxi.text (oder Textbox(i).text oder was auch immer) gibt Fehler
    end if
Next

Gibts vll eine andere Art der auslosung ?? bei der so ein Fehler behoben wird ?
Wenn du die Textboxen als Array willst, musste sie dynamisch erzeugen, also erst zur Laufzeit anlegen.

So haste das Problem, dass du die TextBox direkt ansprechen musst. Also für jeden Index eine extra if Abfrage.

Code VB :
   
if Gegner(1) = 0 then
   Textbox1.text = "kein Wert"
end if
if Gegner(2) = 0 then
   Textbox2.text = "kein Wert"
end if
if Gegner(3) = 0 then
   Textbox3.text = "kein Wert"
end if
 
' usw


N43
Um zu erfahren, wie das Problem, die Sie benötigen TextBox direkt. Also für jeden Index, wenn eine zusätzliche Abfrage. Sollte klar sein, dass die Zahlen gezogen werden Gegner wurden gut zu beheben kann.
Referenz-URLs