Slot Machinen Spiel

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Takafusa.

    Slot Machinen Spiel

    Ich versuche ein kleines Slot Maschinen spiel zu bauen aber es scheitert an einer simplen if abfrage vllt kann mir wer helfen
    Über ein Button wird ein Timer gestartet und wenn das Timerlabel 10 erreicht wird das rouletten der Bilder gestoppt

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim a As Integer
    3. Dim b As Integer
    4. Dim c As Integer
    5. Dim amount As Integer
    6. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    7. a = 1 + Int(Rnd() * 8)
    8. b = 1 + Int(Rnd() * 8)
    9. c = 1 + Int(Rnd() * 8)
    10. Timerlabel.Text = Timerlabel.Text + 1
    11. 'Erstes Slotfeld
    12. If a = 1 Then
    13. PictureBox1.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\grape.png")
    14. Punkteoutputlabel.Text = +5
    15. End If
    16. If a = 2 Then
    17. PictureBox1.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\cherries.png")
    18. Punkteoutputlabel.Text = +10
    19. End If
    20. If a = 3 Then
    21. PictureBox1.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\orange.png")
    22. Punkteoutputlabel.Text = +20
    23. End If
    24. If a = 4 Then
    25. PictureBox1.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\lemon.png")
    26. Punkteoutputlabel.Text = +30
    27. End If
    28. If a = 5 Then
    29. PictureBox1.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\melon.png")
    30. Punkteoutputlabel.Text = +40
    31. End If
    32. If a = 6 Then
    33. PictureBox1.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\seven.png")
    34. Punkteoutputlabel.Text = +50
    35. End If
    36. If a = 7 Then
    37. PictureBox1.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\bigwin.png")
    38. Punkteoutputlabel.Text = +100
    39. End If
    40. If a = 8 Then
    41. PictureBox1.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\bananas.png")
    42. Punkteoutputlabel.Text = +60
    43. End If
    44. 'Zweites Slotfeld
    45. If b = 1 Then
    46. PictureBox2.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\grape.png")
    47. Punkteoutputlabel2.Text = +5
    48. End If
    49. If b = 2 Then
    50. PictureBox2.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\cherries.png")
    51. Punkteoutputlabel2.Text = +10
    52. End If
    53. If b = 3 Then
    54. PictureBox2.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\orange.png")
    55. Punkteoutputlabel2.Text = +20
    56. End If
    57. If b = 4 Then
    58. PictureBox2.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\lemon.png")
    59. Punkteoutputlabel2.Text = +30
    60. End If
    61. If b = 5 Then
    62. PictureBox2.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\melon.png")
    63. Punkteoutputlabel2.Text = +40
    64. End If
    65. If b = 6 Then
    66. PictureBox2.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\seven.png")
    67. Punkteoutputlabel2.Text = +50
    68. End If
    69. If b = 7 Then
    70. PictureBox2.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\bigwin.png")
    71. Punkteoutputlabel2.Text = +100
    72. End If
    73. If b = 8 Then
    74. PictureBox2.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\bananas.png")
    75. Punkteoutputlabel2.Text = +60
    76. End If
    77. 'Drittes Slotfeld
    78. If c = 1 Then
    79. PictureBox3.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\grape.png")
    80. Punkteoutputlabel3.Text = +5
    81. End If
    82. If c = 2 Then
    83. PictureBox3.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\cherries.png")
    84. Punkteoutputlabel3.Text = +10
    85. End If
    86. If c = 3 Then
    87. PictureBox3.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\orange.png")
    88. Punkteoutputlabel3.Text = +20
    89. End If
    90. If c = 4 Then
    91. PictureBox3.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\lemon.png")
    92. Punkteoutputlabel3.Text = +30
    93. End If
    94. If c = 5 Then
    95. PictureBox3.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\melon.png")
    96. Punkteoutputlabel3.Text = +40
    97. End If
    98. If c = 6 Then
    99. PictureBox3.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\seven.png")
    100. Punkteoutputlabel3.Text = +50
    101. End If
    102. If c = 7 Then
    103. PictureBox3.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\bigwin.png")
    104. Punkteoutputlabel3.Text = +100
    105. End If
    106. If c = 8 Then
    107. PictureBox3.Image = Bitmap.FromFile("D:\payne\Downloads\HowTo - Slot Machine\HowTo - Slot Machine\Resources\bananas.png")
    108. Punkteoutputlabel3.Text = +60
    109. End If
    110. 'Ende der Slots
    111. If Timerlabel.Text = "10" Then
    112. Timer1.Stop()
    113. Auszahlunglabel.Text = ""
    114. Timerlabel.Text = "1"
    115. 'Start der Punkteabfrage
    116. 'Hier soll die abfrage der bilder stattfinden
    117. 'Ende der Punkteabfrage
    118. End If
    119. End Sub
    120. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    121. Timer1.Start()
    122. End Sub
    123. End Class

    Aber ich finde keine möglichkeit durch eine if abfrage herauszufinden ob mehrmals das selbe Bild vorhand ist und ich dann einen Wert angezeigt bekomme wenn ja, also bei 2 Grapes 10 oder bei 3 davon halt 15
    Vllt hat ja jemand ne Ahnung, bin immernoch absoluter Noob in visual basic und hab über nen Jahr nichts mehr damit gemacht, hab also komplett irgendwie alles vergessen was ich mal wusste...
    Der Code ist wirklich nicht gut. Du sagts, du hättest fast alle vergessen? Leider scheinbar auch das wichtigste. Objekt-Orientiertes-Programmieren.

    Ich hab jetzt deine "Hausaufgaben" zur hälfte gemacht, oder doch etwas mehr. Du willst ja auch bei 2 gleichen Symbolen einen Gewinn ausschütten, ich hab es nur mit 3 gleichen gemacht. Keine 30 Zeilen mehr Code als du, aber Objektorientiert und besser, allein schon wegen OOP, aber auch in der Formklasse ist nur das nötigste. Vorallem immer die Bitmaps neu laden, da sehe ich nur einen Grund für, Ressourcenverschwendung.
    SlotDisplay

    VB.NET-Quellcode

    1. Public Class SlotDisplay
    2. Private random As New Random()
    3. Const X As Integer = 50
    4. Const Y As Integer = 50
    5. Const Width As Integer = 700
    6. Const Height As Integer = 300
    7. Private slotLeft As New Slot(random)
    8. Private slotCenter As New Slot(random)
    9. Private slotRigth As New Slot(random)
    10. Public Event PlayerWin(slotValue As SlotValue)
    11. Public Event PlayerLost()
    12. Public Sub Paint(g As Graphics)
    13. slotLeft.Paint(g, New Point(X, Y))
    14. slotCenter.Paint(g, New Point(X + 250, Y))
    15. slotRigth.Paint(g, New Point(X + 500, Y))
    16. End Sub
    17. Public Sub Spin()
    18. slotLeft.Spin(random)
    19. slotCenter.Spin(random)
    20. slotRigth.Spin(random)
    21. If slotLeft.GetSlotValue() = slotCenter.GetSlotValue AndAlso slotLeft.GetSlotValue() = slotRigth.GetSlotValue() Then
    22. RaiseEvent PlayerWin(slotLeft.GetSlotValue())
    23. Else
    24. RaiseEvent PlayerLost()
    25. End If
    26. End Sub
    27. End Class

    Slot

    VB.NET-Quellcode

    1. Public Class Slot
    2. Private slotSymbols As New List(Of SlotSymbol)
    3. Private currentSymbolIndex As Integer = 0
    4. Private currentSlotValue As SlotValue
    5. Public Function GetSlotValue() As SlotValue
    6. Return currentSlotValue
    7. End Function
    8. Public Sub New(r As Random)
    9. 'mehrmals gleiche symbole, erhöhen glaub ich die chance 3 gleiche davon zu bekommen
    10. 'je wertvollor ein symbol umso weniger sollten davon vorkommen
    11. 'so hat man mehr kleine gewinnen, der spieler soll ja nicht 50 runden am stück verlieren
    12. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    13. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    14. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    15. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    16. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    17. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    18. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    19. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    20. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    21. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    22. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    23. slotSymbols.Add(New SlotSymbol(SlotValue.Apple, New Bitmap("./Images/apple.png")))
    24. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    25. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    26. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    27. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    28. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    29. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    30. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    31. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    32. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    33. slotSymbols.Add(New SlotSymbol(SlotValue.Banana, New Bitmap("./Images/banana.png")))
    34. slotSymbols.Add(New SlotSymbol(SlotValue.Cherry, New Bitmap("./Images/cherry.png")))
    35. slotSymbols.Add(New SlotSymbol(SlotValue.Cherry, New Bitmap("./Images/cherry.png")))
    36. slotSymbols.Add(New SlotSymbol(SlotValue.Cherry, New Bitmap("./Images/cherry.png")))
    37. slotSymbols.Add(New SlotSymbol(SlotValue.Cherry, New Bitmap("./Images/cherry.png")))
    38. slotSymbols.Add(New SlotSymbol(SlotValue.Cherry, New Bitmap("./Images/cherry.png")))
    39. slotSymbols.Add(New SlotSymbol(SlotValue.Cherry, New Bitmap("./Images/cherry.png")))
    40. slotSymbols.Add(New SlotSymbol(SlotValue.Cherry, New Bitmap("./Images/cherry.png")))
    41. slotSymbols.Add(New SlotSymbol(SlotValue.Cherry, New Bitmap("./Images/cherry.png")))
    42. slotSymbols.Add(New SlotSymbol(SlotValue.Orange, New Bitmap("./Images/orange.png")))
    43. slotSymbols.Add(New SlotSymbol(SlotValue.Orange, New Bitmap("./Images/orange.png")))
    44. slotSymbols.Add(New SlotSymbol(SlotValue.Orange, New Bitmap("./Images/orange.png")))
    45. slotSymbols.Add(New SlotSymbol(SlotValue.Orange, New Bitmap("./Images/orange.png")))
    46. slotSymbols.Add(New SlotSymbol(SlotValue.Orange, New Bitmap("./Images/orange.png")))
    47. slotSymbols.Add(New SlotSymbol(SlotValue.Orange, New Bitmap("./Images/orange.png")))
    48. slotSymbols.Add(New SlotSymbol(SlotValue.Lemon, New Bitmap("./Images/lemon.png")))
    49. slotSymbols.Add(New SlotSymbol(SlotValue.Lemon, New Bitmap("./Images/lemon.png")))
    50. slotSymbols.Add(New SlotSymbol(SlotValue.Lemon, New Bitmap("./Images/lemon.png")))
    51. slotSymbols.Add(New SlotSymbol(SlotValue.Lemon, New Bitmap("./Images/lemon.png")))
    52. slotSymbols.Add(New SlotSymbol(SlotValue.Raspberry, New Bitmap("./Images/raspberry.png")))
    53. slotSymbols.Add(New SlotSymbol(SlotValue.Raspberry, New Bitmap("./Images/raspberry.png")))
    54. End Sub
    55. Public Sub Paint(g As Graphics, position As Point)
    56. slotSymbols(currentSymbolIndex).Paint(g, position)
    57. End Sub
    58. Public Sub Spin(r As Random)
    59. currentSymbolIndex = r.Next(0, slotSymbols.Count)
    60. currentSlotValue = slotSymbols(currentSymbolIndex).GetSlotValue()
    61. End Sub
    62. End Class

    SlotSymbol

    VB.NET-Quellcode

    1. Public Class SlotSymbol
    2. Private slotValue As SlotValue
    3. Public slotImage As Bitmap
    4. Public Function GetSlotValue() As SlotValue
    5. Return slotValue
    6. End Function
    7. Public Sub New(slotvalue As SlotValue, image As Bitmap)
    8. Me.slotValue = slotvalue
    9. slotImage = image
    10. End Sub
    11. Public Sub Paint(g As Graphics, p As Point)
    12. g.DrawImage(slotImage, p)
    13. End Sub
    14. End Class

    SlotValue

    VB.NET-Quellcode

    1. Public Enum SlotValue
    2. Apple = 5
    3. Banana = 10
    4. Cherry = 25
    5. Orange = 50
    6. Lemon = 100
    7. Raspberry = 250
    8. End Enum


    Form1

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private WithEvents slotmachine As New SlotDisplay
    3. Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
    4. slotmachine.Paint(e.Graphics)
    5. End Sub
    6. Private Sub ButtonSpin_Click(sender As Object, e As EventArgs) Handles ButtonSpin.Click
    7. slotmachine.Spin()
    8. Invalidate()
    9. End Sub
    10. Private Sub slotmachine_PlayerLost() Handles slotmachine.PlayerLost
    11. Label1.Text = "You Lost!"
    12. End Sub
    13. Private Sub slotmachine_PlayerWin(slotValue As SlotValue) Handles slotmachine.PlayerWin
    14. Label1.Text = "You Win " & CInt(slotValue) & " Points!"
    15. End Sub
    16. End Class


    Projekt im Anhang, bereinigt, aber "bin/debug/images", "bin/release/images" Ordner erhalten mit den Bildern.
    Dateien
    • SlotEx.zip

      (40,14 kB, 77 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Takafusa“ ()

    Oha vielen dank schonmal, werd mich mal durch den Code arbeiten um zu sehen wie du dort was genau gemacht hast um das zu verstehen.



    Ok hab den Code nochmal bisschen angepasst und jetzt funktioniert es schonmal so wie ich es gern hätte.
    Ein weiteres Problem habe ich nur noch, und zwar habe ich die Slots Maschine mit meinem Twitch Chat verbunden.
    Sobald jetzt jemand zb "!slots" schreibt dann soll die Form sichtbar werden und der Slotspin starten und nachdem er fertig ist wieder die Form hiden.
    Ich kann mich auch verbinden, die Nachrichten auslesen etc..alles wunderbar...jedoch kann ich von dort aus nicht meine Form hiden oder meinen Timer starten weil das ganze in ner eigenen Instanz läuft oder so ?!
    Habe was von nem Threading Timer gefunden aber der stoppt halt auch net, krieg damit die Slotmaschine ans laufen aber die hört halt nicht auf, ich blick bei dem Teil absolut net durch.

    Hier der Code
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System
    2. Imports TwitchLib.Client
    3. Imports TwitchLib.Client.Enums
    4. Imports TwitchLib.Client.Events
    5. Imports TwitchLib.Client.Extensions
    6. Imports TwitchLib.Client.Models
    7. Imports System.Threading
    8. Imports System.Timers
    9. Public Class Form1
    10. Private client As TwitchClient
    11. Dim message As String = Nothing
    12. Dim username As String = Nothing
    13. Dim winAmount As Integer
    14. Dim spintime As Integer = 1
    15. Private WithEvents slotmachine As New SlotDisplay
    16. Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
    17. slotmachine.Paint(e.Graphics)
    18. End Sub
    19. Private Sub slotmachine_PlayerLost() Handles slotmachine.PlayerLost
    20. 'Verloren
    21. End Sub
    22. Private Sub slotmachine_PlayerWin(slotValue As SlotValue) Handles slotmachine.PlayerWin
    23. winAmount = CInt(slotValue)
    24. End Sub
    25. Private Sub SpinTimer_Tick(sender As Object, e As EventArgs) Handles SpinTimer.Tick
    26. spintime = spintime + 1
    27. slotmachine.Spin()
    28. Invalidate()
    29. If spintime = 20 Then
    30. spintime = 1
    31. SpinTimer.Stop()
    32. End If
    33. End Sub
    34. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    35. Dim credentials As New ConnectionCredentials("TWITCHACCOUNT", "OAUTHTOKEN")
    36. client = New TwitchClient()
    37. client.Initialize(credentials, "CHANNELNAME")
    38. AddHandler client.OnJoinedChannel, AddressOf onJoinedChannel
    39. AddHandler client.OnMessageReceived, AddressOf onMessageReceived
    40. AddHandler client.OnWhisperReceived, AddressOf onWhisperReceived
    41. AddHandler client.OnNewSubscriber, AddressOf onNewSubscriber
    42. AddHandler client.OnConnected, AddressOf Client_OnConnected
    43. AddHandler client.OnDisconnected, AddressOf Client_OnDisconnected
    44. client.Connect()
    45. End Sub
    46. Private Sub Client_OnConnected(ByVal sender As Object, ByVal e As OnConnectedArgs)
    47. MessageBox.Show("Connected")
    48. End Sub
    49. Private Sub Client_OnDisconnected()
    50. MessageBox.Show("Disconnected")
    51. End Sub
    52. Private Sub onJoinedChannel(ByVal sender As Object, ByVal e As OnJoinedChannelArgs)
    53. client.SendMessage(e.Channel, "Ich bin der SirBotAlot, und bin auch dabei!")
    54. End Sub
    55. Private Sub onMessageReceived(ByVal sender As Object, ByVal e As OnMessageReceivedArgs)
    56. If e.ChatMessage.Message.Contains("!slots") Then
    57. username = e.ChatMessage.Username
    58. message = e.ChatMessage.Message
    59. 'Slots starten
    60. SpinTimer.Start()
    61. '
    62. ElseIf e.ChatMessage.Message.Contains("Hallo") Or e.ChatMessage.Message.Contains("hallo") Then
    63. username = e.ChatMessage.Username
    64. client.SendMessage("SirDieAlotTV", "Hallo " & username)
    65. ElseIf e.ChatMessage.Message.Contains("Hi") Or e.ChatMessage.Message.Contains("hi") Then
    66. username = e.ChatMessage.Username
    67. client.SendMessage("SirDieAlotTV", "Hi " & username)
    68. ElseIf e.ChatMessage.Message.Contains("Hey") Or e.ChatMessage.Message.Contains("hey") Then
    69. username = e.ChatMessage.Username
    70. client.SendMessage("SirDieAlotTV", "Hey " & username)
    71. ElseIf e.ChatMessage.Message.Contains("Moin") Or e.ChatMessage.Message.Contains("moin") Then
    72. username = e.ChatMessage.Username
    73. client.SendMessage("SirDieAlotTV", "Moin " & username)
    74. End If
    75. End Sub
    76. Private Sub onWhisperReceived(ByVal sender As Object, ByVal e As OnWhisperReceivedArgs)
    77. 'If e.WhisperMessage.Username = "my_friend" Then
    78. 'client.SendWhisper(e.WhisperMessage.Username, "Hey! Whispers are so cool!!")
    79. 'End If
    80. End Sub
    81. Private Sub onNewSubscriber(ByVal sender As Object, ByVal e As OnNewSubscriberArgs)
    82. 'If e.Subscriber.SubscriptionPlan = SubscriptionPlan.Prime Then
    83. 'client.SendMessage(e.Channel, $"Welcome {e.Subscriber.DisplayName} to the substers! You just earned 500 points! So kind of you to use your Twitch Prime on this channel!")
    84. 'Else
    85. 'client.SendMessage(e.Channel, $"Welcome {e.Subscriber.DisplayName} to the substers! You just earned 500 points!")
    86. 'End If
    87. End Sub
    88. End Class

    Ansonsten auch nochmal im Ahang als Projektdatei



    Also habs jetzt nachträglich noch hinbekommen, aber da ich eine Slotmaschinen drehung "emulieren" will hab ich die ganze Spin funktion in einen Timer gepackt der an nem bestimmten Punkt stoppt..aber er kann ja währenddessen trotzdem mehrmals einen gewinn oder lose würfeln bis das ganze fertig is..und postet dann jedesmal das selbige im Chat...vllt ne Idee dazu

    Beiträge zusammengefügt. ~Thunderbolt
    Dateien
    • SlotEx-Edited.rar

      (18,2 MB, 64 mal heruntergeladen, zuletzt: )

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

    Also ein Twitch-User schriebt im Chat auf Twitch "!slot" und der Apparat soll sichtbar werden. Das ist einfach, das hast ja bereits im Form das Twitch Zeug, das ganze Form mit Form.Hide und Form.Show anzeigen, ist schon jemand am Slot, im Chat eine Meldung machen, das der Apparat besetzt ist. Nur was mir auch nicht klar ist wie du es realisieren willst, das ein User mehrere Spins machen sollen kann, würde auch via Chat funktionieren, aber den Chat willst du sicher nicht mit sowas vollgespamt haben. Daher würde ich eher auf eine automatik setzen, wie sie echte Spielautomaten auch haben.

    Meine Idee dazu, ein User startet den Automaten, bekommt eine feste Anzahl an Spins, jedes mal wenn ein Spin fertig ist, von der Variable 1 abziehen, wenn diese aber > 0 ist, einfach einen neuen Spin starten, sobald sie 0 ist, kannst du sicherlich irgendwie auch an den Chat senden, sowas wie: "SpinBot: User XXX hat 1001 Gummipunkte erspielt.". Könnte man noch eine Highscore Tabelle machen und diese Kurz einblenden, wenn ein Top 10 Highscore aufgestellt wurde.

    Um im Form feststellen zu können wann keine Spins mehr übrig sind, mach eine Sub AutoSpin(spinCount as integer) in den SlotDisplay, sowie eine Variable für die Anzahl an Spins. Dann wird dort solange gespielt bis keine Spins mehr übrig sind, dann feuerst du ein Event welches du in der Form abboniert hast, "GameOver" wäre ein guter Name, so wie ich das mit Win/Lost gemacht hab. Dann hast du einen Auslöser der dann an den Chat sendet, sowie auch einen möglichen neuen Highscore zu zeigen.

    Ich ändere meinen SlotEx Code im Laufe des Tages ein wenig, hänge das Projekt dann später an, dann kannst du das bei dir reinmachen.
    So habe meinen Code auf deine Bedürfnisse angepasst. Die Bilder sind nun in den Ressourcen. Weiteres Form hinzugefügt, dieses Form wird dann bei Bedarf instanziert und alles läuft von allein. Die Slotmachine ist nun ein Control, einfach aus der ToolBox aufs Form werfen, wenn die Bilder in den Ressourcen sind.
    Schaut ganz passabel aus. Nun wird auch ein Gewinn ausgeschüttet wenn 2 Slots gleich sind, dafür aber beim Drilling die doppelten Punkte.
    Demovideo:
    streamable.com/asx01q

    Nun kannst du alles in der Klasse Form1 starten. Du musst nur noch die Twitch-Sachen einbauen, evtl auch noch die Anzahl pro "Bild" in Slot.vb ändern, damit nicht zu viel oder zu wenig gewonnen wird.
    Dateien
    • SlotEx_V2.zip

      (174,25 kB, 83 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Takafusa“ ()