Spielautomat hilfe

  • Sonstige

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

    Spielautomat hilfe

    Grüße euch Community

    Ich werde gleich wahnsinnige bastel jetzt schon seit 4 Stunden an einem Problem rum aber komme einfach auf keinen Fehler.
    Mein Problem will nen Spielautomat machen, und der soll verschiedene Bilder anzeigen und wenn 3 gleiche Bilder sind soll man gewonnen haben .
    So weit so gut hab mal 4 Timer gemacht 3x Timer laden schnell hintereinander die Bilder und der 4x Stopt sie dann.
    Da es ja Zufall sein soll benutze ich die Funktion Randomize und Picturebox.load.
    Aber es ladet einfach nicht die Bilder die es eigentlich laden soll, zB < 0.3 ladet es auch 0.9 usw Hier mal der Code das man sich was darunter vorstellen kann !

    Quellcode

    1. Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick
    2. Dim K As Integer
    3. Dim C As Integer
    4. Dim D As Integer
    5. D = Rnd()
    6. C = Rnd(1)
    7. D = Rnd(2)
    8. Rnd()
    9. Rnd(1)
    10. Rnd(2)
    11. Label1.Text = Label1.Text & vbCrLf & Rnd()
    12. Label2.Text = Label2.Text & vbCrLf & Rnd(1)
    13. Label3.Text = Label3.Text & vbCrLf & Rnd(2)
    14. Timer1.Stop()
    15. Timer2.Stop()
    16. Timer3.Stop()
    17. If D < 0.3 And Not D > 0.3 Then
    18. PictureBox1.Load("C:\Users\Michi\Documents\GAMBEautomat.png")
    19. End If
    20. If D > 0.3 And Not D > 0.6 Then
    21. PictureBox1.Load("C:\Users\Public\Pictures\Sample Pictures\t.png")
    22. End If
    23. If D > 0.6 And Not D < 0.6 Then
    24. PictureBox1.Load("C:\Users\Public\Pictures\Sample Pictures\w.png")
    25. End If
    26. If C < 0.3 Then
    27. PictureBox2.Load("C:\Users\Public\Pictures\Sample Pictures\w.png")
    28. End If
    29. If C > 0.3 And Not C > 0.6 Then
    30. PictureBox2.Load("C:\Users\Public\Pictures\Sample Pictures\t.png")
    31. End If
    32. If C > 0.6 Then
    33. PictureBox2.Load("C:\Users\Michi\Documents\GAMBEautomat.png")
    34. End If
    35. If D < 0.3 Then
    36. PictureBox3.Load("C:\Users\Public\Pictures\Sample Pictures\t.png")
    37. End If
    38. If D < 0.6 And Not Rnd(2) < 0.3 Then
    39. PictureBox3.Load("C:\Users\Public\Pictures\Sample Pictures\w.png")
    40. End If
    41. If D > 0.6 Then
    42. PictureBox3.Load("C:\Users\Michi\Documents\GAMBEautomat.png")
    43. End If
    44. 'Prüfen ob gewonnen wurde
    45. If Rnd() > 0.6 And Rnd(1) < 0.3 Then
    46. If Rnd(2) < 0.6 And Not Rnd(2) < 0.3 Then
    47. MsgBox("kk")
    48. End If
    49. End If
    Hallöchen,
    vielleicht solltest du, wenn du absolut nicht vorwärts kommst, das Problem mal von einer anderen (meiner Meinung nach einfacheren) Seite angehen.
    Du ermittelst während dem Drehen, deine Ergebnisse.
    Versuche doch mal folgendes:
    Du hast 3 "Walzen" und z.B. 10 Bilder.
    Jetzt kommts... Du ermittelst VOR dem Drehen, wie das Ergebnis aussieht, natürlich per Zufall.
    Z.B.
    Walze 1 = Bild 3
    Walze 2 = Bild 8
    Walze 3 = Bild 1

    Nun brauchst du nur noch EINEN Timer und lässt alle 3 Walzen drehen, sagen wir 10-20 Anstandsrunden (per zufall)
    nun musst du nur noch innerhalb deines Timers "warten", bis Walze 1 das Bild 3 erreicht hat und stoppt dann (wird also nicht mehr gedreht)
    Sobald Walze 1 fertig ist, darf dann auch Walze 2 Stoppen, wenn sein "Zielbild" (8) erreicht ist...
    und als letztes, also wenn 1 und 2 als fertig markiert sind, darf 3 Stoppen. sobald sie Bild 1 anzeigt.
    Somit sollte es um einiges leichter sein, da du nur noch mit einem Timer drehen musst und nur noch darauf warten, das die vorher(!) ermittelten Bilder da sind.
    Die ganze komplizierte Randomgeschichte innerhalb des Timers brauchst du dann nicht mehr

    mach was draus :)
    (im richtigem Leben wird dies auch so gehandhabt)
    Ja ich weiß wie du das meinst, aber dann ist das ja nicht mehr Zufall.
    Und das nächste Problem wie stop ich den Timer dann ? If Picturebox.load oder sonst was funktioniert nicht da es ja den Pfad liest?
    Hab das jetzt so gemacht das ich jeden Rnd über ein label auslese also > label.text und komischerweise funktioniert das ?(
    Wieso soll das kein Zufall sein?
    Klaro ist das Zufall. Nur das die Maschine im inneren schon weiß was kommen wird. "DU" nicht.
    (Wie gesagt, so funktionieren die Maschinen im richtigem Leben)

    Den Timer kannste doch entweder laufen lassen (es werden ja nur die Walzen bewegt, die aktuell ein anderes Bild anzeigen, als das ZielBild/Nr. ist.
    D.h. kaum gibst du neue Zielbilder vor, dreht das ganze wieder wie von Geisterhand los.
    Oder du stoppst Sie nach dem Stoppen der letzten Walze.

    .. mit deinem Label.txt . evtl, solltest du der Ordnung halber mit cInt(label.text) vergleichen, denn der Text ist ein "String" und dein RND liefert sicherlich
    integer zurück, und String und Integer macht sich nicht sogut im vergleich.

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