Code (in Doppeltschleife ?) zusammenfassen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Visual_Prog.

    Code (in Doppeltschleife ?) zusammenfassen

    moin,


    - ich habe 7 kartenlisten erstellt, die eine je eine zufällige anordnung der 15 spielkarten inne haben.
    - das geschieht im array einer kartenliste _randomizedlist(6) -> es trägt den index 6 weil es 7 spieler gibt
    - im array _kartenmenge(6) werden 6 unterschiedliche kartenmengen generiert, da jeder spieler eine unterschiedliche Kartenmenge hat

    VB.NET-Quellcode

    1. Public Sub KartenAusteilen()
    2. For i = 0 To 6
    3. _RandomizedList(i) = New List(Of Karte)
    4. Next
    5. For i = 0 To 6
    6. _RandomizedList(i) = _Kartenliste.OrderBy(Function(x) _zufall.Next()).ToList
    7. Next
    8. For i = 0 To 6
    9. _kartenmenge(i) = _zufall.Next(1, 16)
    10. Next
    11. end sub


    --> dann wird jedem spieler in seinen Eigenenkarten (eine list of karten) in einer for schleife die karten hinzugefügt, abhängig von der generierten _kartenmenge



    VB.NET-Quellcode

    1. For i = 0 To _kartenmenge(0)
    2. lukas.Eigenekarten.Add(_RandomizedList(0)(i))
    3. Next
    4. For i = 0 To _kartenmenge(1)
    5. miriam.Eigenekarten.Add(_RandomizedList(1)(i))
    6. Next
    7. For i = 0 To _kartenmenge(2)
    8. julia.Eigenekarten.Add(_RandomizedList(2)(i))
    9. Next


    Kann man den zweiten Code Quelltext vielleicht in einer Doppeltschleife zusammenfassen? Oder den Vorgang insgesamt effektiver gestalten?
    danke im voraus
    Die erste For-Schleife kannst Du weglassen, da _RandomizedList(i) ja eh in der 2. Schleife überschrieben wird.
    Dann kannst Du den ersten Codeblock zusammenfassen zu:

    VB.NET-Quellcode

    1. Public Sub KartenAusteilen()
    2. For i = 0 To 6
    3. _RandomizedList(i) = _Kartenliste.OrderBy(Function(x) _zufall.Next()).ToList
    4. _kartenmenge(i) = _zufall.Next(1, 16)
    5. Next
    6. End sub



    Den 2. Codeblock kannst Du nicht sinnvoll kürzen, da die Empfänger andere sind. Es sei denn, lukas, miriam und julia wären in einer gemeinsamen Liste Spieler. Dann wäre möglich:

    VB.NET-Quellcode

    1. For j = 0 To 2
    2. For i = 0 To _kartenmenge(j)
    3. Spieler(j).Eigenekarten.Add(_RandomizedList(j)(i))
    4. Next
    5. Next
    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.