Werte durch zufall vergeben

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von der_Kurt.

    Werte durch zufall vergeben

    So hey leute ich habe ein Problem....
    Ich möchte die werte aus clan(0-15) in Variabeln speichern
    soo ... das ist ja nicht das problem... mein problem ist, dass nicht spieler 1 immer = clan(1)
    ist sondern einfach eine zufals auswahl
    also irgend eine der variablen soll mit irgend einem eintrag aus clan (0-15) gefüllt werden

    VB.NET-Quellcode

    1. Public spieler1 As Integer
    2. Public spieler2 As Integer
    3. Public spieler3 As Integer
    4. Public spieler4 As Integer
    5. Public spieler5 As Integer
    6. Public spieler6 As Integer
    7. Public spieler7 As Integer
    8. Public spieler8 As Integer
    9. Public spieler9 As Integer
    10. Public spieler10 As Integer
    11. Public spieler11 As Integer
    12. Public spieler12 As Integer
    13. Public spieler13 As Integer
    14. Public spieler14 As Integer
    15. Public spieler15 As Integer
    16. Public spieler16 As Integer


    VB.NET-Quellcode

    1. clan(0) = TextBox1.Text
    2. clan(1) = TextBox2.Text
    3. clan(2) = TextBox3.Text
    4. clan(3) = TextBox4.Text
    5. clan(4) = TextBox5.Text
    6. clan(5) = TextBox6.Text
    7. clan(6) = TextBox7.Text
    8. clan(7) = TextBox8.Text
    9. clan(8) = TextBox9.Text
    10. clan(9) = TextBox10.Text
    11. clan(10) = TextBox11.Text
    12. clan(11) = TextBox12.Text
    13. clan(12) = TextBox13.Text
    14. clan(13) = TextBox14.Text
    15. clan(14) = TextBox15.Text
    16. clan(15) = TextBox16.Text

    VB.NET-Quellcode

    1. Dim r As New System.Random
    2. Clan(r.Next(1, 15)) = MaskedTextBox1.Text


    Das System gibt eine Zufallszahl aus (1 bis 15).
    Hierbei kann es aber vorkommen, das die gleiche Zahl mehrmals vorkommt.
    Wenn du das vermeiden willst, prüf via if abfrage, ob die Zahl bereits existiert..
    hmmm ja ...
    also bei 4 spielen will ich
    clan(0) = endweder variable 1/2/3/4
    clan(1) = endweder variable 1/2/3/4
    clan(2) = endweder variable 1/2/3/4
    clan(3) = endweder variable 1/2/3/4
    keine darf dopperlt verwendet werden ...
    das ganze muss ich auch noch fpr 5,6,7,8,9,10,11,12,13,14,15,16 spieler machen ...

    damit hab ich das net hinbekommen ...
    Dim r As New System.Random
    Clan(r.Next(1, 15)) = MaskedTextBox1.Text
    Was hat denn nicht funktioniert?


    machste einfach


    VB.NET-Quellcode

    1. Private Sub Zufallszahl()
    2. if Clan(1) = Clan(r.Next(1,15))
    3. Zufallszahl()
    4. else
    5. Clan(r.Next(1,15))
    6. End if
    7. End Sub


    und wenn du bei manchen nur Zahlen zwischen 1 und 4 willst, machste

    VB.NET-Quellcode

    1. r.Next(1,4)


    Bin nicht sehr Erfahren in VB, kann daher Falsch sein.
    Sollte aber Eigentlich funktionieren.
    Dim r As New System.Random
    clan(r.Next(0, 15)) = player1
    hatte auch 1,15


    msgbox(palyer1)
    ausgegeben wurde 0
    habs umgedreht --- Fehler



    oder ich probiers mal mit
    Select Case

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

    oliver14800 schrieb:

    Was ist daran falsch ?

    ich denke: schon der allererste Ansatz.

    Spiele sind Datenverarbeitungen mit mehr oder weniger komplexem Regelwerk dahinter.
    Dafür konzipiert man besser ein geeignetes Datenmodell.

    Der Versuch, die Vorgänge anstatt als Daten als Controls abzubilden führt meist zu undurchschaubaren und verbugten Code-Konstruktionen.
    hmmmmmmmmmmmmm

    so

    VB.NET-Quellcode

    1. Dim random As New System.Random
    2. Dim nummer As Integer
    3. nummer = random.Next(0, 4)
    4. spieler1 = (Form2.clan(nummer))

    bei der lösung gibt mir das programm einen error

    und bei dieser lösung leuft es !!! woran liegt da s?????

    VB.NET-Quellcode

    1. Dim random As New System.Random
    2. Dim nummer As Integer
    3. nummer = random.Next(0, 4)
    4. msgbox (Form2.clan(nummer))



    ______________________________________________________________ Bearbeitet___________________________________________________________________________


    habe es selbst gelöst !!!!
    ich habe den array clan in typ string gewählt

    allerdings war spieler 1 im typ integer
    jetzt leuft es
    So habe jetzt eine lösung ..... Wert muste auf string geändert werden


    neues problem...

    wie mache ich das, dass nicht spieler 1 und 2 gleich sind ??? also jeder ein anderer

    VB.NET-Quellcode

    1. Dim random As New System.Random
    2. Dim nummer As String
    3. nummer = random.Next(0, 4)
    4. spieler1 = (Form2.clan(nummer))
    5. nummer = random.Next(0, 4)
    6. spieler2 = (Form2.clan(nummer))
    7. nummer = random.Next(0, 4)
    8. spieler3 = (Form2.clan(nummer))
    9. nummer = random.Next(0, 4)
    10. spieler4 = (Form2.clan(nummer))


    wie mache ich das,dass nicht 2 gleichzeitig wewählt werdden können ???

    Edit by der_Kurt:
    * Beiträge zusammengefügt *

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

    Du speicherst alle bereits genutzten Namen in einer Liste ab und gehst die jedes mal durch. Ist der Name vorhanden, beginnst du von vorne. Oder du ersetzt den genutzten Namen mit "#" oder so und wenn es eben dieses Zeichen ist, dann beginnst du von vorne.
    Viele Grüße
    Sebastian