Mehrere Würfel mit sparater Ausgabe

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Moefab.

    Mehrere Würfel mit sparater Ausgabe

    Hi,

    ich habe jetzt ewig zeiten nichts mehr mit VB gemacht
    und bin vollkommen raus aus der materie (hatte damals aber auch nur ca 3-4 monate damit zutun gehabt).



    Zu meinem Problem:

    Ich habe 2 Textfelder und 1 Button.
    Im 1. Textfeld (tbdice) möchte ich die Anzahl der zu werfenden Würfel eingeben, zB 4, für 4 Würfel.
    Mit einem Klick auf den button (bnroll) soll jeder Würfel, für sich selbst, einen Wert von 1 bis 6 erhalten.
    In der 2. Textbox (tbergebnis) soll nun jeder Würfel separat angezeigt werden.

    In der Theorie soll das etwa so aussehen:

    Ich gebe 3 Würfel an.
    Klicke auf den Button zum Würfeln.
    Die Würfel werden geworfen und erhalten zB die Werte 2, 6 und 4.
    Nun möchte ich, das dies genauso im 2. Textfeld erscheint:
    Etwa so: 2-6-4.



    Mein Problem ist, das wenn ich mehrere Würfel benutze,
    diese sich lediglich mit dem Wert des 1. Würfels mit der Anzahl der Würfel multiplizieren.
    Wenn ich 3 Würfel nutze und der erste ergibt 5 bekomme ich als ergebnis 15.
    Ich teste nun schon seit etwa 3 Stunden rum, komme aber leider zu keinem Ergebnis.
    Nun hab ich an die verwendung von Arrays gedacht, aber ich glaub das ich auch da auf dem Holzweg bin.

    Hat jemand von euch evtl einen, oder auch mehrere, Tips?



    Beispielcode hab ich leider keinen zur Hand, habe das bereits getestete schon verworfen.





    [edit]

    ahh.. ähm... ich habs jetz einigermaßen...

    VB.NET-Quellcode

    1. Dim dice As Integer
    2. Dim dice2 As Integer
    3. dice = Int(6 * Rnd()) + 1
    4. dice2 = (Int(6 * Rnd()) + 1)
    5. ...usw
    6. If tbdice.Text = 1 Then tbergebnis.Text = dice
    7. If tbdice.Text = 2 Then tbergebnis.Text = dice & " - " & dice2
    8. ...usw


    aber das ganze geht doch sicher weniger umständlich, oder? :]
    Immerhin benötigt man meistens 5-10 würfel ^^

    [/edit]

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

    So sollte es gehen.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Randomize()
    3. txtbox_Ergebniss.Text = ""
    4. Dim oZahl As New System.Random
    5. Dim Zahl As Integer
    6. Dim Counter As Integer
    7. Dim i As Integer
    8. Dim Ergebniss As String
    9. Counter = CInt(txtbox_Würfelanzahl.Text)
    10. For i = 1 To Counter
    11. Zahl = oZahl.Next(1, 7)
    12. txtbox_Ergebniss.Text = txtbox_Ergebniss.Text + CStr(Zahl) + "-"
    13. Next
    14. Ergebniss = txtbox_Ergebniss.Text
    15. Ergebniss = Ergebniss.TrimEnd("-")
    16. txtbox_Ergebniss.Text = Ergebniss
    17. End Sub
    hallo,

    @zarak,
    wenn du den code so nicht verstehst, dann geh doch einfach im debugger das ganze zeile für zeile durch.
    dabei kannst du dir die zustände der variablen ansehen und der code wird klarer.

    @moefab,
    deine drei letzten codezeilen haben es aber schwer in sich.
    darf ich dir mal einen vorschlag machen, wie es einfacher geht ?

    VB.NET-Quellcode

    1. .......
    2. Dim i As Integer
    3. Dim Ergebniss As String
    4. Counter = CInt(txtbox_Würfelanzahl.Text)
    5. For i = 1 To Counter
    6. Zahl = oZahl.Next(1, 7)
    7. Ergebniss &= Zahl.ToString + "-"
    8. Next
    9. txtbox_Ergebniss.Text = Ergebniss.TrimEnd("-")
    10. End Sub

    gruss

    mikeb69