Autor Wątek: Rozbudowanie bota do ruletki  (Przeczytany 6263 razy)

Offline DzaroD

  • Użytkownik

# Grudzień 16, 2015, 18:50:38
Siemka,
Potrzebuję kogoś kto rozbuduje mi już działanie bota do csgodouble
Bot stawia tak abyśmy my mieli jak najmniejszą szanse na przegraną
Przykładowo
Mamy 1026 pktow na stronce
Stawiamy 1
Przegrywamy, stawiamy 2, przegrywamy, stawiamy 4 itd *2 liczbę postawioną w poprzednim losowaniu jeśli przegramy, takim sposobem zawsze jesteśmy 1 na + przegrywamy jesli trafi sie 9x kolor na ktory nie postawiliśmy. Do usprawnienia zarabiania na tym bocie chciałbym dodać 1 funkcje, ja sie na tym nie znam wiec prosze o to kogoś kto to zrobi :) Chce żeby bot zmieniał kolor gdy postawi już 5 razy ten sam kolor i 5 razy wygra dodając do puli 16 razy więcej niż podaliśmy na początku, jeśli przegra daje 2* (przegrana suma) jesli wygra wraca do początku - czyli stawiania na wybrany kolor z podaną wczesniej suma. Trzeba do tego dodać pewnie ze 4 linijki tekstu wiec chyba to nie jest ogromny problem dla ludzi co pisza cale strony a nawet gry :)
Oczywiście jesli chcecie sprawdzić jak to działa to wejdźcie na stronke csgodouble.com musicie miec steam z gra cs go a nastepnie kliknac na stronie "free coins" i wpisac jakis darmowy kod np carvet (pisane z wielkich albo malych) dostajecie 500 free coinsow i mozecie testować.
Działającego bota wklepuje sie do konsoli na stronie (f12)
// CONFIG ////////////////
var initialBetAmount = 5;
var mode = 'martingale'; // can be 'martingale' or 'anti-martingale' (WAT? https://en.wikipedia.org/wiki/Martingale_(betting_system) )
var betColor = 'red'; // can be 'red' or 'black'
//////////////////////////

function tick(){var a=getStatus();if(a!==lastStatus&&"unknown"!==a){switch(a){case"waiting":bet();break;case"rolled":rolled()}lastStatus=a,printInfo()}}function checkBalance(){return getBalance()<currentBetAmount?(console.warn("BANKRUPT! Not enough balance for next bet, aborting."),clearInterval(refreshIntervalId),!1):!0}function printInfo(){var a=" \nStatus: "+lastStatus+"\nRolls played: "+currentRollNumber+"\nInitial bet amount: "+initialBetAmount+"\nCurrent bet amount: "+currentBetAmount+"\nLast roll result: "+(null===wonLastRoll()?"-":wonLastRoll()?"won":"lost");console.log(a)}function rolled(){return"anti-martingale"===mode?void antiMartingale():(martingale(),void currentRollNumber++)}function antiMartingale(){currentBetAmount=wonLastRoll()?2*currentBetAmount:initialBetAmount}function martingale(){currentBetAmount=wonLastRoll()?initialBetAmount:2*currentBetAmount}function bet(){checkBalance()&&(setBetAmount(currentBetAmount),setTimeout(placeBet,50))}function setBetAmount(a){$betAmountInput.val(a)}function placeBet(){return"red"===betColor?($redButton.click(),void(lastBetColor="red")):($blackButton.click(),void(lastBetColor="black"))}function getStatus(){var a=$statusBar.text();if(hasSubString(a,"Rolling in"))return"waiting";if(hasSubString(a,"***ROLLING***"))return"rolling";if(hasSubString(a,"rolled")){var b=parseInt(a.split("rolled")[1]);return lastRollColor=getColor(b),"rolled"}return"unknown"}function getBalance(){return parseInt($balance.text())}function hasSubString(a,b){return a.indexOf(b)>-1}function getColor(a){return 0==a?"green":a>=1&&7>=a?"red":"black"}function wonLastRoll(){return lastBetColor?lastRollColor===lastBetColor:null}var currentBetAmount=initialBetAmount,currentRollNumber=1,lastStatus,lastBetColor,lastRollColor,$balance=$("#balance"),$betAmountInput=$("#betAmount"),$statusBar=$(".progress #banner"),$redButton=$("#panel1-7 .betButton"),$blackButton=$("#panel8-14 .betButton"),refreshIntervalId=setInterval(tick,500);


Oczywiście ja tego nie pisałem, ja chce żeby było to bardziej rozbudowane. Jeśli to nie forum do tego to przepraszam ;)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

  • +2
# Grudzień 16, 2015, 23:03:31
Cytuj
Bot stawia tak abyśmy my mieli jak najmniejszą szanse na przegraną
Czyli stawia zawsze na czerwony X? (ten w rogu okna aplikacji) ;)

W takich grach prawdopodobieństwo jest zawsze po stronie kasyna. Ale jeśli chodzi wyłącznie o wygranie jak największej części kasy z darmowej puli, to statystycznie najpewniejsze będzie zrobienie jak największej liczby osobnych zakładów w osobnych losowaniach na kolor (albo inne pole z ~1/2 szans). Alternatywnie jeśli się da, to jak najwięcej jak najtańszych zakładów na oba kolory jednocześnie - wtedy nie dostajesz wygranej tylko przy zerach, a że stawiasz minimalnie w osobnych zakładach, to stracisz na zerach maksymalnie kilka razy.

Offline hashedone

  • Użytkownik

# Grudzień 17, 2015, 11:18:44
Cały bot opiera się na błędnym założeniu, że prawdopodobieństwo jest jakkolwiek powiązane z rozkładem co jest oczywiście bzdurą. Innymi słowy: prawdopodobieństwo, że w 9 losowaniach wypadnie po kolei RRRRRRRRR jest dokładnie takie samo, jak prawdopodobieństwo, że wypadnie BBBBBBBBB, albo RBRBRBRBR. No ale jeśli myślisz że ten bot powoduje maksymalizacje wygranej, to myśl tak dalej, nic na to nie poradzimy ;) Tym bardziej nie wiem, jak twoje usprawnienie ma cokolwiek usprawniać - w takich grach jedyne co może mieć znaczenie, to wygranie jak największej liczby zakładów - a więc stawiania jak najmniejszych sum (bo wtedy w przypadku pesymistycznym, masz gwarantowane więcej zakładów).

W szczególności bot który ma po wygranej mniej niż 512 żetonów (czyli pierwsze 12 serii przegranych zakończonych wygraną - po każdej serii, bot zarabia dokładnie jeden żeton), potrzebuje żeby się "spłukać" serii 8 (nie 9 - przegrane są kumulatywne) przegranych - szansa na taką serię, to 1/(2^8) czyli około 0.4% (0.3906) - szansa, że to się stanie przynajmniej raz w pierwszych 12 seriach, to 1 - (1 - 1/(2^8)) ^ 12 co wynosi około 4.6% - niby mało, ale jest to jak najbardziej prawdopodobne. Później już "spłukanie się" wymaga faktycznie serii 9 przegranych (szansa 0.2%), a prawdopodobieństwo że to się wydarzy w pierwszych 500 seriach (dla uproszczenia nie licząc pierwszych 12) to... ponad 62%. Dla czego wybrałem 500 gier? Bo dopiero 500 serii oznacza dla tego skryptu podwojenie stawki - inaczej rzecz ujmując, znacznie bardziej jest prawdopodobne, że ten bot przegra wszystkie swoje pieniądze niż podwoi stawkę - a i to zajmie mu wieczność (500 serii, z czego średnia seria to pewnie 3-4 gry - nie chce mi się tego liczyć, dawało by 1500-2000 gier) - na przykład żeby podwoić stawkę 2000 żetonów (trzeba przegrać serię 10 gier), potrzebujesz 2000 serii, a wtedy prawdopodobieństwo przegranej wynosi aż 86% (a ilość gier które trzeba zagrać to już 6k-8k).

=== EDIT ===

Aż się rzuciłem i policzyłem - oczekiwana długość serii to 2 (dla serii o max 8 grach to jest 1.96, 9 grach: 1.98, 10 grach: 1.99), a więc w powyższych rozważaniach jedyne co się zmienia, to ilość gier potrzebnych do podwojenia stawki (dla 500 żetonów to staje się 1000 gier, dla 2000 to jest 4k gier) - nie zmienia to jednak zupełnie faktu, że bot statystycznie prędzej przegra niż stawkę podwoi.
« Ostatnia zmiana: Grudzień 17, 2015, 12:13:06 wysłana przez hashedone »

Offline laggyluk

  • Użytkownik
    • twitter

  • +2
# Grudzień 17, 2015, 13:35:45
po co ta matematyka? :P wszystkie gry w kasynie statystycznie przynoszą zysk im a nie tobie więc równie dobrze możesz postawić wszystko co masz w jednej grze i zaoszczędzić sobie czasu

Offline hashedone

  • Użytkownik

# Grudzień 17, 2015, 14:17:05
Matematyka po to, żeby udowodnić opowi że tak jest - może przeczyta i uwierzy ;)

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Grudzień 17, 2015, 18:55:01
po co ta matematyka? :P wszystkie gry w kasynie statystycznie przynoszą zysk im a nie tobie więc równie dobrze możesz postawić wszystko co masz w jednej grze i zaoszczędzić sobie czasu
Nie do końca. O ile średnia spodziewana wygrana będzie zawsze niższa od tego co postawisz, o tyle możesz manipulować rozkładem prawdopodobieństwa. W szczególności są systemy, które gwarantują wygraną - tyle że przy założeniu nieskończonych środków na zakłady.

Offline DzaroD

  • Użytkownik

# Grudzień 17, 2015, 19:25:37
Jestem pod wrażeniem tego że chciało ci się pisać tyle żeby mi uświadomić, że to wszystko jest zrobione tak żebym ja przegrał :) Oczywiście ten bot ma działać tak żebym ja na nim jak najprędzej zarobił, wypłacił pieniądze i stawiał dalej tym botem resztkami których nie wypłaciłem. Startowe coinsy dostaje za darmo a wiec nic nigdy nie przegram ! Zakładając że wygrywam coś koło 47% betów to przez te 100 gier zarabiam 47 dodając to "usprawnienie" zarabiam wiecej cos kolo 16 x 3 - parę betów które trwały podczas przebijania "traina" Czyli już całkiem nieźle :) Nie ma co tu sie stosować tylko do matmy bo trzeba by było też uwzględnić to że np zacząłem grać już kiedy spory train sie trafił- wiec szana na kolejnego w kolejnych setkach gier jest 2x mniejsza i takie inne duperele. Ogólnie to chyba nie wiemy czy ta stronka jest w 100% losowa a wtedy prawa matematyki nie działają. Lepiej to sprawdzić w praktyce, testuje tego bota i mam juz 4x tyle co miałem. Aha i bot nie musi koniecznie podwoić stawki, może przecież dać zysk w wysokości 10% - wtedy prawdopodobieństwo powodzenia jest ogromne, bo co jeśli ktoś by wpłacił 1000 $ i chciał zyskać 100 ? Oczywiście ten ktos pewnie dopiął by z łatwością swego :) ( nie koniecznie botem bo to akurat da sie recznie zrobić) Bot mnie nic nie kosztuje a mógłbym wiele zyskać, powoli ale nadal za darmo, bez inwestycji.

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Grudzień 17, 2015, 19:53:53
Cytuj
Nie ma co tu sie stosować tylko do matmy bo trzeba by było też uwzględnić to że np zacząłem grać już kiedy spory train sie trafił- wiec szana na kolejnego w kolejnych setkach gier jest 2x mniejsza i takie inne duperele.
No właśnie duperele. Stół nie ma pamięci, więc Twoje założenie jest całkowicie błędne.

Cytuj
Bot mnie nic nie kosztuje a mógłbym wiele zyskać, powoli ale nadal za darmo, bez inwestycji.
Jakkolwiek nie zbudujesz algorytmu obstawiania, spodziewany wynik średni w bardzo długim rzucie zawsze będzie dla Ciebie niekorzystny. Jedyne co możesz zrobić to maksymalizować szansę na wypłacenie darmowych monet.

Offline koirat

  • Użytkownik

# Grudzień 17, 2015, 21:37:06
Stół nie ma pamięci, więc Twoje założenie jest całkowicie błędne.
W sumie zastanawia mnie czy internetowe kasyno które zapewne używa jakiegoś softwarowego randomizera nie ma tej "pamięci".

Tak czy owak granie w kasynie żeby wygrać to idiotyzm.

Dojenie bonusów to jednak co innego.

Nie do końca. O ile średnia spodziewana wygrana będzie zawsze niższa od tego co postawisz, o tyle możesz manipulować rozkładem prawdopodobieństwa. W szczególności są systemy, które gwarantują wygraną - tyle że przy założeniu nieskończonych środków na zakłady.
W sumie każdy gra w której nie ma limitu na środki które możesz stawiać i która posiada choćby minimalną szanse na wygraną daje gwarant zysku przy nieograniczonych zasobach.

W ten czas można korzystać z systemu Martingale.

Właśnie z tego powodu kasyna wprowadziły limit na wysokość zakładu. Bez tego każde kasyno bankrutuje jak wpada do niego szejk który chce się zabawić ;)

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Grudzień 18, 2015, 00:53:41
Cytuj
W sumie zastanawia mnie czy internetowe kasyno które zapewne używa jakiegoś softwarowego randomizera nie ma tej "pamięci".
Możesz w przybliżeniu też założyć, że nie ma. Nawet najprostsze generatory liczb losowych mają okres powtórzenia rzędu 2 miliardów. Te lepsze bliżej okolicy 2 do potęgi kilku-kilkunastu tysięcy. Za to lepszym pytaniem jest czy używają kryptograficznie bezpiecznego generatora liczb losowych - jeśli nie, to teoretycznie jest szansa na odkrycie stanu generatora i przewidywania przyszłych liczb. Ale na to też jest bardzo mała szansa, bo byś musiał przede wszystkim mieć pewność że jesteś jedynym użytkownikiem danego generatora, niewspółdzielonego pomiędzy różnymi sesjami różnych użytkowników.

Cytuj
Właśnie z tego powodu kasyna wprowadziły limit na wysokość zakładu. Bez tego każde kasyno bankrutuje jak wpada do niego szejk który chce się zabawić ;)
Są systemy w których wysokość zakładu nie rośnie wykładniczo. Poza tym nawet w przypadku szejka nie doprowadzi on kasyna do bankructwa takimi systemami, bo zyski w tych systemach to bardzo mała część zasobów.

Offline koirat

  • Użytkownik

# Grudzień 18, 2015, 10:52:59
Są systemy w których wysokość zakładu nie rośnie wykładniczo. Poza tym nawet w przypadku szejka nie doprowadzi on kasyna do bankructwa takimi systemami, bo zyski w tych systemach to bardzo mała część zasobów.
Podaj przykład bo nie wiem czy rozmawiamy o tym samym. Rozumiem że nie zgadzasz się z tezą że w przypadku nie limitowanej wysokości zakładu i nieograniczonych zasobach da się wygrać dowolnie dużo ?

Offline hashedone

  • Użytkownik

# Grudzień 18, 2015, 10:57:27
Akurat że ta konkretna gra nie ma pamięci jest zagwarantowane - jeśli już chcemy na takiego typu hazardzie zarabiać, to może warto sprawdzić jak on działa ;)

Apropo tego co mówi koirat - teoria wielkich liczb gwarantuje nam, że dla dowolnej kwoty N, przy nieograniczonych zasobach i nieskończonej liczbie gier (tak na prawdę wysokość zakładu nie jest tu konieczna, za to im wyższa, tym większa szansa, że omawiana sytuacja zajdzie "szybko"), będzie taki moment, w którym przy dowolnym systemie obstawiania, osiągnie się wygraną N - przy czym oczywiście, nie znaczy to, że istnieje takie M, że po rozegraniu M gier, sumaryczna wygrana będzie dodatnia. Innymi słowy - tak, jeśli mamy nieograniczoną gotówkę (a więc szejk jest takimś tam niezłym przybliżeniem) i nieskończoną liczbę czasu (znowu: szejk jest jakimś tam przybliżeniem) i uprzemy się, że chcemy wygrać 1000000$, to się to w końcu musi udać - a jeśli nie ma ograniczenia stawki zakładu, to nawet względnie szybko. Inna sprawa, że żeby to się udało, to nasza gotówka, jeśli jest ograniczona, musi być kilka rzędów większa niż oczekiwana wygrana (czyli generalnie - to i tak nie ma sensu zarobkowego, ale jeśli szejk grałby tylko dla zabawy żeby zbankrutować kasyno - nie miał by problemu przy braku ograniczenia stawki). Oczywiście jeśli taki szejk uzna, że gra do znudzenia (a nie do momentu ugrania jakiś kwoty co musi ostatecznie nastąpić), to nie ma żadnej gwarancji, że wyjdzie na plus.
« Ostatnia zmiana: Grudzień 18, 2015, 11:07:27 wysłana przez hashedone »

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Grudzień 18, 2015, 18:15:48
Cytuj
Rozumiem że nie zgadzasz się z tezą że w przypadku nie limitowanej wysokości zakładu i nieograniczonych zasobach da się wygrać dowolnie dużo ?
Przy nielimitowanych zasobach i nielimitowanych zakładach DA się wygrać dowolnie dużo. Tyle że zasoby muszą być o kilka-kilkanaście rzędów wielkości większe niż wygrana.

Offline hashedone

  • Użytkownik

# Grudzień 18, 2015, 18:26:25
O to właśnie chodzi z szejkiem - zakładam że koirat miał tu na myśli osobę o zasobach o kilka-kilkanaście rzędów większych niż kapitał kasyna.

Offline koirat

  • Użytkownik

# Grudzień 18, 2015, 19:38:31
Naturalnie szejk był metaforyczny ;)