• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Gewinnchance bei Jackpot beeinflussen

zTrouble

Redstoneengineer
Registriert
8 September 2019
Beiträge
30
Diamanten
250
Moin,

Ich programmiere aktuell einen Jackpot welcher zufällig einen Spieler auswählt und gewinnen lässt. Jetzt soll es aber so sein das desto so höher der Einsatz des Spielers ist, desto höher soll seine Gewinnchance werden, denn bis jetzt ist es so das jeder die gleiche Chance hat. Es ist so das alle die beim Jackpot mit machen in einem Array eingetragen sind, und so ausgelost werden:
Spieler auslosen:
    Random rand = new Random();
    Player randomElement = null;

    int numberOfElements = 1;
     for (int i = 0; i < numberOfElements; i++) {
          int randomIndex = rand.nextInt(joinedplayers.size());
          randomElement = joinedplayers.get(randomIndex);
    }

joinedplayers ist hierbei der Name des Arrays in dem jeder eingetragen ist. Meine Idee war jetzt einen Spieler mehrfach zum Array hinzuzufügen so das er eine größere Gewinnchance hat aber wie rechne ich jetzt am besten aus wie oft ich ihn hinzufügen muss damit er z.B eine Gewinnchance von 80 Prozent hat und wie viele Coins er in den Jackpot im Vergleich zu seinen Mitspielern gesteckt hat um diese 80 Prozent zu erreichen.
 

zTrouble

Redstoneengineer
Registriert
8 September 2019
Beiträge
30
Diamanten
250
Genau dazu möchte ich ja eine Formel aufstellen, das abhängig davon wie hoch der Einsatz ist und wie viel jeder eingesetzt hat (speichere ich schon alles) das ausgerechnet wird. Allerdings weiß ich nicht genau wie dieser Wert (also um wie viel es sich erhöht) aussieht, denn genau das möchte ich gerne ausrechnen. Wäre auch über Tipps dankbar wie ich wenn ich ausgerechnet bekomme um wie viel die Chance steigt weiß wie oft der Spieler zur Arraylist hinzugefügt werden soll damit dann z.B Spieler1 der 1000 gesetzt hat eine 60 Prozent chance hat und Spieler2 der als Beispiel eine 40 Prozentchance hat und Spieler1 z.B 6 mal zur Arralist und Spieler2 4 mal oder so. Hoffe das ist verständlich, vielleicht habe ich aber auch deine Frage nicht richtig verstanden.
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Dir fehlt halt irgendein Faktor, den du noch festlegen musst. In deinem Beispiel setzt Spieler1 1000 und hat eine Gewinnwahrscheinlichkeit von 60%, Spieler2 setzt y und hat eine Gewinnwahrscheinlichkeit von 40%. Was setzt denn Spieler2? 500? 666,67?
 

zTrouble

Redstoneengineer
Registriert
8 September 2019
Beiträge
30
Diamanten
250
Ich versuchs nochmal anders: Spieler1 setzt 100 Münzen, Spieler2 setzt 400 Münzen, jetzt ist mein Problem wie ich es jetzt machen soll das Spieler 2 eine höhere Warscheinlichkeit hat bzw. wie ich seine Warscheinlichkeit ausrechne und dann so anwende das er um so viel mal öfter in der Arraylist eingetragen ist
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Du trägst der Nutzer genau einmal in eine Liste ein und speicherst die Anzahl der Slots (0 inklusive), die er belegen soll. Hier kannst du auch noch mit den Zahlen spielen und z.B. eine logarithmische Verteilung nutzen. Außerhalb der Liste speicherst du die Summe aller belegten Slots.

Für die Ziehung ziehst du nun eine Zahl zwischen 0 und der Summe aller Slots und durchläufst das Array. In jedem Eintrag ziehst du die Anzahl der Slots von der gezogenen Zahl ab und aktualisierst den Wert. Erreicht der Wert 0, so hast du deinen Gewinner gefunden.
 

zTrouble

Redstoneengineer
Registriert
8 September 2019
Beiträge
30
Diamanten
250
So wie ich es verstanden habe lost das einfach nur einen zufälligen eingetragenen Spieler aus, was meine zuvor geposteter Code ebenfalls macht, was ich halt möchte ist das desto mehr Geld man setzt desto höher die Warscheinlichkeit wird, also wenn 2 mit machen haben beide logischerweise eine 50% Chance, die Chance soll allerdings abhängig von dem eingesetzen Geld in Relation zu dem Gesammtbetrag sein der aus dem Geld von allen (in meinem Beispiel 2) gesetzen Spielern besteht. In deiner Lösung wird der Spieler unabhängig von dem gesetzen Geld ausgelost was genau das ist was ich schon habe. Was meinst du eigentlich mit Slots? Die anzahl der in der Liste eingetragenen Spieler oder wie oft der Nutzer eingetragen ist?
 
Oben