Kommunikation zwischen Javascript und Java?

berndoa

Top Contributor
Hallo,
ich will mir einen "Bot" bauen (simpler Javascript Code entweder als Tampermonkey Script oder als Chrome Extension),
der für mich im Online Casino Roulette spielt.
javascript unter Anderem daher weil ich da mit einem bestimmten Codeblock die Network requests abfangen kann und Sachen basierend auf der Response machen kann,
sowie generell auch auf die DOm Zugriff habe.
Kann auch gewisse Sachen in session und local storage speichern, was sehr vorteilhaft ist!

Einziges Problem:
Die Roulette Seite akzeptiert click Events nicht, vermutlich gerade um solche Automatisierung zu verhindern :-/
Nun müsste ich also das eigentliche "klicken" verlagern in ein externes Java Programm und eben mit der Robot Class herumhantieren.

Frage ist nun nur:
Das Javascript programm bestimmt letztlich wo geklickt werden muss.
Nur wie kann es dem java Programm diese info sinnvoll zukommen lassen?
Eine Billigvariante nahc meinem Stil wäre, dass das JAvascript bspw. ein weißes Quadrat auf die Stelle zeichnet, wo geklickt werden soll.
Und java eben mit pixelcolorsucherei dauernd den Bildschirm absucht und klickt.

Wäre die worst Case variante, falls ich nichts besseres finde.

Aber gibt es da vielleicht irgendeinen guten Weg wie das im Browser laufende javascript und ein externes javaprogramm irgendwie kommunizieren können,
also Infos hin und hergeschickt werden können?
 
Die Roulette Seite akzeptiert click Events nicht, vermutlich gerade um solche Automatisierung zu verhindern :-/

Ich habe gerade gelernt dass es Event.isTrusted gibt in JavaScript welches erlaubt zu unterscheiden ob es wirklich ein Benutzer war der klickt oder nicht. In weiser Vorraussicht haben die Browser das alle umgesetzt, und zwar hard-coded.

Selenium muesste eigentlich die Moeglichkeit sein das zu automatisieren. Was auch immer das tut, die Ereignisse welche es ausloest muessen nicht von einem Benutzer unterscheidbar sein. Alternativ koennte auch Puppeteer gehen weil die es explizit genau so bauen.
 
Zuletzt bearbeitet:
Gibt es...
ja, weise Voraussicht... fragt sich nur für wen.

Klar Selenium und sowas gibts, aber ich will da eher weniger ein extra neues Programm dazu benutzen.
Ich will es, wenn möglich, rein mit javascript und java bewältigen.
Müsste mich da auch sosnt noch in ein ganz neues Programm einarbeiten das ich vermutlich wieder hinten und vorne nicht verstehe :-D

Ist von der Programmablaufslogik her ja nicht allzu schwer, nur werden halt Javascript Klicks schlicht nicht akzeptiert weil nicht getrusted wird :-/
 
Klar Selenium und sowas gibts, aber ich will da eher weniger ein extra neues Programm dazu benutzen.

Waere dein Java Programm ja auch.

Ich will es, wenn möglich, rein mit javascript und java bewältigen.

Ich wuerde da eventuell auf eine Loesung setzen die fuer genau das gedacht ist und auch in Zukunft fuer genau das gedacht ist, Puppeteer zum Beispiel. Natuerlich kannst du das alles selbst basteln, aber wenn ich das richtig verstehe ist das ja keine Uebungsaufgabe fuer dich sondern du versuchst hier Geld zu generieren. Da waere eine Loesung welche deinen Aufwand minimiert (jetzt und in Zukunft) schon durchaus besser.
 
(offtopic) egal wer da spielt und setzt (Bot / Mensch / ...): aus Vogelperspektive gewinnt (langfristig) nur der Anbieter, selbst bei exakt 50% Gewinnwahrscheinlichkeit und Anwendung des Martingalverfahrens. Auf Spielerseite wollen vorige kumulierte Verluste nämlich auch berücksichtigt werden...
In der Wahrscheinlichkeitstheorie setzt ein Martingal ein faires Glückspiel voraus. Das bedeutet das die erwartete Auszahlung und der getätigte Einsatz gleich sind.
Bei Roulette wird bei einem Treffer auf die Nummer das 36fache bezahlt. Es gibt aber wegen der Zero 37 Zahlen.
Wenn wir jetzt 37 mal auf die selbe Zahl setzen berechnen wir die mittlere erwartete Auszahlung.
Also die Anzahl der erwarteten Treffer * Auszahlungsbetrag.
Die Wahrscheinlichkeit dass eine Zahl kommt ist 1/37
Also 37* 1/37 = 1 --> bei 37 Spielen bezahlt der Spieler 37 Stück und erwartet 1 * 36 Stück. Er verliert im Schnitt 1 Stück was dem Bankvorteil bei Roulette von 1/37 in etwa 2.7° entspricht.
Damit ist Roulette wie jedes andere angebotene Glückspiel nicht fair.
Als Martingalespiel wird der Versuch bezeichnet durch ständiges Verdoppeln am Ende die Bank zu besiegen.
Also z.B.
1 Stück auf Rot bei Verlust 2 Stück usw.
Der Spieler setzt darauf, dass Rot jedes 2te Spiel erwartet wird und irgendwann kommen muss.
Problem dabei ist.
Kommt 3 x Schwarz muss der Spieler 2^3-1 = 7 Stücke verlieren.
Er muss weitere 8 Stücke setzen und gewinnt dann 1 Stück. Also er hat 2^4-1 = 15 Stücke riskiert und 1 Stück gewonnen.
Kommt 5 x Schwarz ist das Risiko 2^6 - 1 = 63 Stück. Wiederum gewinnt er nur 1 Stück.
Das bedeutet das Risiko wächst exponentiell , der Gewinn bleibt aber konstant.
Bei einer 10er Serie ist ein Einsatz von 2^11-1 = 2047 Stück notwendig um am Ende 1 Stück zu lukrieren.
Die 1te Hürde ist hier das Kapital das benötigt wird, um durchzuhalten.
Die 2te Hürde ist das vom Spielanbieter gewährte Maximum das sehr schnell erreicht wird.

Also ein Bot wird bei so einem Spiel, keine Gewinne erzielen können. Es sei denn man findet Gutgläubige die sich das Programm kaufen.
 

Zurück
Oben