Toaster Kitty, A crash scenariusz gry, jest przeznaczony dla tych, którzy chcą uzyskać znaczną nagrodę, potencjalnie ponad 50-krotność początkowego zakładu. Ustawiasz swoją początkową wypłatę i możesz dostosować ustawienia strat i minimalnego zysku. Stamtąd skrypt automatyzuje proces. Zostało wzięte z BC.Game forai został przebudowany, aby działał.
var config = { mainTitle: { label: "*** Nubs27's Toaster Kitty ***", type: "title" }, payout: { label: "Exit Point Minimum", value: 88, type: "number" }, increase: { label: "Increase Payout", value: 0.05, type: "number" }, losses: { label: "Minimum Profit on Win", value: 0.01, type: "number" }, stopTitle: { label: "Stop When", type: "title" }, stop: { label: "Coins Lost >", value: 1, type: "number" }, wins: { label: "wins =", value: 1, type: "number" }, }; function main() { var isPlaying = false; var gamesPlayed = 0; var currentGameID = 0; var lastResult = "Not Played"; var lastCrash = 2; var prevCashOut = lastCrash; var baseBet = config.losses.value / config.payout.value; var currentBet = baseBet; var lastBet = currentBet; var didBet = false; var gameInfoLogged = false; var scriptHistory = []; var updateConsole = false; var currentMultiplier = config.payout.value; var lastMultiplier = config.payout.value - 0.05; var coinLost = 0; var wins = 0; var losses = 0; game.on("GAME_STARTING", function () { // set base bet and show initial data log if (gamesPlayed < 1) { log.info(" Toaster Kitty"); log.info(" by Nubs27"); log.info(" ****************"); baseBet = config.losses.value / config.payout.value; if (!Number.isInteger(config.wins.value)) { log.info("***** Attention *****"); log.info("wins = " + config.wins.value + " is NOT valid"); log.info("Integers ONLY"); log.info( "I could have the script auto round the number, but you like being funny too :)" ); game.stop(); } } checkForStops(); // adjust current bet and multiplier if (gamesPlayed < 2 || lastResult === "Won") { currentBet = baseBet; currentMultiplier = config.payout.value; isPlaying = true; if (gamesPlayed < 2) { log.info(`Played < 2 games`); } if (lastResult === "Won") { log.success(`Won!`); } log.info(`Current bet: ${currentBet}`); log.info(`Current Multiplier: ${currentMultiplier}`); } // adjust current bet and multiplier if (lastResult === "Lost") { currentBet = (coinLost + config.losses.value) / (currentMultiplier - 1); currentMultiplier = lastMultiplier + config.increase.value; log.error(`Lost`); log.info(`Current bet: ${currentBet}`); log.info(`Current Multiplier: ${currentMultiplier}`); } // adjust current bet if (currentBet < currency.minAmount) { currentBet = currency.minAmount; log.info(`Current Bet < Min Bet`); log.info(`Current bet: ${currentBet}`); } }); function checkForStops() { if (coinLost > config.stop.value) { log.info("Maximum Coin Loss Reached. Script Stopped"); game.stop(); } if (wins === config.wins.value) { log.info("Congratulations"); log.info("wins goal reached. Script Stopped"); game.stop(); } currentMultiplier = currentMultiplier * 100; currentMultiplier = Math.round(currentMultiplier); currentMultiplier = currentMultiplier / 100; gamesPlayed++; setTimeout(placeBet, 0); } function placeBet() { if (!didBet) { game.bet(currentBet, currentMultiplier); isPlaying = true; didBet = true; log.info(" ***********"); } gameInfoLogged = false; } game.on("GAME_ENDED", function () { var lastGame = game.history[0]; var lastCrash = lastGame.crash / 100; currentGameID = lastGame.gameId; prevCashOut = lastCrash; lastBet = currentBet; lastMultiplier = currentMultiplier; didBet = false; if (!gameInfoLogged) { logAllInfo(); } }); function logAllInfo() { if (scriptHistory.push(prevCashOut) > 999) { scriptHistory.shift(); } if (isPlaying === true && prevCashOut >= currentMultiplier) { var wonAmount = lastBet * currentMultiplier - coinLost; lastResult = "Won"; wins++; losses = 0; coinLost = config.losses.value; log.info("[Game Won] " + wonAmount + " " + currencyName); } else if (isPlaying && prevCashOut < currentMultiplier) { lastResult = "Lost"; losses++; coinLost = coinLost + lastBet; } currentGameID = currentGameID.toString(); if (currentGameID.endsWith("0")) { updateConsole = true; } if (updateConsole) { log.info( "Amount Lost in search of this Kitty " + (coinLost - config.losses.value) + " " + currency.currencyName ); updateConsole = false; } gameInfoLogged = true; } }
Spróbujmy to przeanalizować i spróbować zmaksymalizować zysk.
Konfiguracja wstępna
- Minimalny punkt wyjścia (wypłata): 88x (To jest Twój docelowy mnożnik. Twoim celem jest wypłata przed tym mnożnikiem.)
- Zwiększ wypłatę: 0,05 (Za każdym razem, gdy przegrasz, zwiększasz docelowy mnożnik o tę kwotę.)
- Minimalny zysk przy wygranej: 0,01 $ (Chcesz zapewnić minimalny zysk w wysokości 0,01 $ za każdą wygraną.)
- Zagubione monety >: 1 (Zatrzymaj, jeśli łączna liczba utraconych monet przekracza 1 USD.)
- Wygrywa =: 1 (Zatrzymaj po 1 zwycięstwie.)
Biorąc pod uwagę tę konfigurację, przejdźmy do prawdziwego przykładu, stosując strategię po stracie, jak sugeruje scenariusz.
Krok 1: Oblicz zakład początkowy
- Zakład podstawowy jest ustalany w taki sposób, aby wygrana pokryła wymagany minimalny zysk. Biorąc pod uwagę, że wypłata wynosi 88x, a chcesz zyskać co najmniej 0,01 USD:
Dla uproszczenia zaokrąglimy to do 0,00011 USD w naszym przykładzie.
Krok 2: Zacznij grać
Zaczynasz od zakładu o wartości 0,00011 $, którego celem jest uzyskanie mnożnika 88x.
Krok 3: Dostosuj się po stracie
Skrypt oblicza nowy zakład po przegranej, aby zapewnić pokrycie strat plus minimalny zysk. Obliczenia po stracie uwzględniają całkowitą liczbę straconych monet i nowy docelowy mnożnik.
Jeśli ostatnim wynikiem była przegrana, skrypt do dostosowania zakładu użyje poniższej formuły:
New Bet = (Coin Lost+Minimum Profit) / (Current Multiplier−1)
Przeanalizujmy, jak te korekty wyglądają w liczbach rzeczywistych, biorąc pod uwagę początkową stratę. Zakładając, że dotychczas przegrana moneta wynosi 0,00011 $ (kwota pierwszego zakładu) i dostosowujemy nasz docelowy mnożnik do 88,05x ze względu na wzrost po stracie.
Krok 4: Obliczanie nowego zakładu po pierwszej przegranej
Zakładając, że całkowita stracona moneta to nadal tylko początkowy zakład (0,00011 USD) i chcesz nie tylko odzyskać tę kwotę, ale także zapewnić minimalny zysk przy następnej wygranej, przy zwiększonym mnożniku wynoszącym obecnie 88,05:
New Bet = (0.00011+0.01) / (88.05−1)
Obliczmy nowy zakład:
New Bet = 0.01011 / 87.05 ≈ 0.0001161
Zatem Twój następny zakład powinien wynosić około 0,00012 USD (zaokrąglając dla uproszczenia), mając na celu mnożnik wynoszący 88,05x.
Krok 5: Kontynuacja strategii
- Zwycięski: Jeśli następna gra wygra na poziomie lub powyżej docelowego mnożnika, zresetuj swój zakład do pierwotnego zakładu podstawowego (0,00011 $) i docelowego mnożnika (88x).
- Dalsze straty: Jeśli ponownie przegrasz, powtórz proces obliczeń ze zaktualizowanymi sumami straconych monet i ponownie dostosuj docelowy mnożnik o 0,05.
Dokładna logika
Strategia ta polega na zwiększeniu zakładu po przegranej na tyle, aby pokryć przegraną kwotę plus minimalny zysk, za każdym razem nieznacznie dostosowując docelowy mnożnik w górę, aby dążyć do nieco wyższych zwrotów. Tworzy to równowagę między odrabianiem strat a osiąganiem stałych, choć niewielkich zysków.
Pomimo ukierunkowania zakładu na duży mnożnik, strategia przedstawiona w scenariuszu ma na celu umiarkowany zysk.
Optymalizuj zysk
Aby zoptymalizować konfigurację pod kątem zrównoważonej strategii, której celem jest lepsza trwałość i rozsądna szansa na osiągnięcie większych mnożników, pamiętając jednocześnie o zarządzaniu ryzykiem, dostosujmy konfigurację:
var config = { mainTitle: { label: "*** Nubs27's Toaster Kitty ***", type: "title" }, payout: { label: "Exit Point Minimum", value: 2.5, type: "number" }, // Adjusted for more achievable targets increase: { label: "Increase Payout", value: 0.02, type: "number" }, // Slight increase after each loss for gradual recovery losses: { label: "Minimum Profit on Win", value: 0.01, type: "number" }, // Keeping the minimum profit target realistic stopTitle: { label: "Stop When", type: "title" }, stop: { label: "Coins Lost >", value: 0.5, type: "number" }, // Adjusted to a more cautious stop loss value wins: { label: "wins =", value: 3, type: "number" }, // Setting a win target for taking profits and pausing };
Wyjaśnienie korekt
- Minimalny punkt wyjścia (wypłata): Obniżono do
2.5x
z88x
. Cel ten jest bardziej osiągalny, pozwala na częstsze zwycięstwa, co jest kluczowe w przypadku strategii polegającej na odrabianiu strat i gromadzeniu zysków w czasie. - Zwiększ wypłatę: Dostosowany do
0.02x
, w dół od0.05x
. Ten mniejszy przyrost po każdej stracie pozwala na bardziej stopniowe podejście do zwiększania docelowego mnożnika. Pomaga w skuteczniejszym zarządzaniu bankrollem, nie zwiększając zbyt szybko wymaganego celu wygranej po porażce. - Minimalny zysk przy wygranej: Pozostaje o godz
$0.01
, utrzymując cel, jakim jest zapewnienie minimalnego zysku przy każdej wygranej. Dzięki temu strategia ma na celu osiągnięcie stałych, przyrostowych zysków. - Stracone monety (Stop Loss): Ustawić
0.5
(zakładając, że jest to rozsądna część bankrolla gracza w oparciu o jego całkowite środki). Jest to bardziej konserwatywne ustawienie stop-loss, które pomaga zarządzać ryzykiem, zapobiegając dużym stratom. - Wygrane (realizacja zysków): Wzrosła do
3 wins
przed zatrzymaniem lub zatrzymaniem. Daje to jasną strategię realizacji zysków, pozwalającą na gromadzenie zysków i ponowną ocenę strategii.
Koncentrując się na najgorszym scenariuszu, w którym każda gra kończy się przegraną, aż do osiągnięcia całkowitego limitu strat wynoszącego 0,5, możesz potencjalnie rozegrać do 64 gier, zanim osiągniesz warunek zatrzymania. W obliczeniach tych zakłada się, że po każdej przegranej zakład jest nieznacznie zwiększany, aby pokryć poprzednie straty i zapewnić minimalny zysk, zgodnie z logiką strategii, ale bez wyraźnego przeliczania zakładu na podstawie wyniku każdej gry.
Dlatego rzeczywiście zaleca się dostosowanie początkowej konfiguracji w celu optymalizacji wyników. Obecna konfiguracja, choć zapewnia prostą strategię, wskazuje na wysokie ryzyko dotyczące możliwej ilości gry przed osiągnięciem stop-loss, przy stosunkowo niewielkiej maksymalnej wygranej na grę. Skuteczniejsze równoważenie potencjału zwycięstw i porażek może prowadzić do bardziej zrównoważonej strategii, potencjalnie zwiększając zarówno przyjemność, jak i rentowność gry.