mbithy / trevel Goto Github PK
View Code? Open in Web Editor NEWThe smartest Bitcoin Gambling bot for freebitco.in.
The smartest Bitcoin Gambling bot for freebitco.in.
Any proof that you won with this script?
Anyway, thanks for the work!
Hi, tell me how can I change the initial bet
Current initial bet: 0.00000001
Example bet: 0.00000002 or 0.00000010
And when will update?
More time I let it play, more successfull it will be, right?
Hi everybody,
I tested the DQ-Trevel.js a lot of times changing the settings in different ways (minBet, maxBet, MartingaleMultiplier etc..) but I always had a negative profit, always.
I tried also to change the betSpeed from 3000 to 1000 to 0.
I lost a lot of satoshi (start with > 100000). I think that a real script to gain satoshi with freebitcoin doesn't exists.
This script is not the solution. I'm sorry because I believe it.
Hi, I was wondering if anyone has any ideas of how to prevent ghost bets?
Thanks
Hi! Really cool stuff here. I noticed that {"W1":{"n":10,"d":24,"w":{"0":0.0023925765403397733,"1":0.0
isn't compatible with DQNAgent fromJSON method, which expects different keys
fromJSON: function(j) { // load function this.nh = j.nh; this.ns = j.ns; this.na = j.na; this.net = R.netFromJSON(j.net); }
This is causing an error
why?
My balance was: 0.00008300 BTC
Then he rose up: 0.00010900 BTC
And that goes to: 0.0002500 BTC
My settings:
var _stop = false,
_rolls = 0,
_currentBalance, _maxBet, _x = 0,
_maxNumberOfTrails=10000,
_minNumberOfTrials=5000,
_numberOfSuccesses = 0,
_numberOfTrials = 0,
_winPercentage = 52,
_stopOnNumberOfBets = false, //Change this to true if you wish to stop betting after a specific number of bets
_defaultProb=false,
_swap = true,
_verbose = false, //Change this to true if you want to know the stats(profit) after each bet
_numberOfBets = 46, //You can change this but keep the number of bets low (<135 but >75) to increse AI accuracy.
_maxNumberOfBets = 50, //max=150
_minNumberOfBets = 50, // min=50
/** Custom Bet Configuration **/
_useCustomConfiguration=true,//Change to true to use your own configuration
_customMaximumBet=0.00004096,//This is the maximum bet you want placed
_customMinimumBet=0.00000002,//This is the minimum bet you want placed
_customMultiplier=2;// This is the multiplier. the default is 2. INFO: The bet amount will be multiplied
Hi mbithy,
I have made some changes to Trevel in my fork. I have implemented deep q learning using the reinforcejs library. I would love it if you could review the changes, point out any mistakes (I am very new to coding) and let me know how we could improve it.
https://github.com/kazi308/Trevel/blob/master/Trevel.js
Thanks
Maybe add Martingale betting strategies.
Pull request for tampermoneky/greasmonkey
Hello,
how does the training actually work? / How does it help when I run it for more time and then import it and play on live?
Great stuff with the wiki! but 1 thing is not clear.
What do you mean with this:
Make sure that your var spec = {} match what you trained with
Do you have a example what it could be?
And this. When i copy the DQ-Trevel.js in the console
and i do the
var netString='copy paste your network model here';
var netObject=JSON.parse(netString);
agent.fromJSON(netObject);
with the trained network code paste {"W1":{"n":10,"d":24,"w":{"0":0.00239 etc 626654111294}}}
it gives the error
Uncaught SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse ()
at :2:20
What am i doing wrong?
/**Date: 2018-02-03
//variables to change
var baseBetAmount = 0.00000001;
var betMultiplier = 2.0;
var supportedLoseSequenceBetsLength = 16;
var betsPatternsLengthInDecimal = [4];
var betPatternReversed = 1; //will create the pattern reverse only when equal to 1!!!!
var patternPlayPeriodInSeconds = 900; //the period of playing a single pattern.
var binarySequenceOpposite = 2;//if equal to 1, will create binary opposed sequences pattern. value vary from 0 to 2
//no need to touch the rest!!!!!
//first we load all bets sequences
var betsPatterns = [];
function reverseString(str) {
return str.split('').reverse().join('');
}
function isNumberBetweenInterval(number, a, b, inclusive) {
var min = Math.min(a, b),
max = Math.max(a, b);
return inclusive ? number >= min && number <= max :number > min && number < max;
}
function loadBetsPattern(){
betsPatternsLengthInDecimal.forEach(function (t) {
//looking for regular binary
if(isNumberBetweenInterval(binarySequenceOpposite,0, 1, true)){
current = [];
for (i = 0; i < Math.pow(2, t); i++) {
//it support only 9!!!
binary = ("00000000" +i.toString(2)).slice(-1 * t);
current.push( binary );
}
betsPatterns.push(current);
//looking for reverse
if(betPatternReversed === 1){
current = [];
for (i = Math.pow(2, t) - 1; i >= 0 ; i--){
//it support only 9!!!
binary = ("00000000" +i.toString(2)).slice(-1 * t);
current.push( binary );
}
betsPatterns.push(current);
}
}
//looking for binary opposite
if(isNumberBetweenInterval(binarySequenceOpposite,1, 2, true)){
current = [];
for (i = 0; i < Math.pow(2, t); i++) {
//it support only 9!!!
binary = ("00000000" +i.toString(2)).slice(-1 * t);
current.push( reverseString(binary) );
}
betsPatterns.push(current);
//looking for reverse
if(betPatternReversed === 1){
current = [];
for (i = Math.pow(2, t) - 1; i >= 0 ; i--){
//it support only 9!!!
binary = ("00000000" +i.toString(2)).slice(-1 * t);
current.push( reverseString(binary) );
}
betsPatterns.push(current);
}
}
});
}
loadBetsPattern();
//console.log(betsPatterns);
var currentPattern = 0;
var currentPatternSequenceIndex = 0;
var currentInnerSequencePosition = 0;
var betsCounter = 0;
var currentLoseSequenceBetsCounter = 0;
var maxWait = 500;
var betsButtons = [$('#double_your_btc_bet_hi_button'),$('#double_your_btc_bet_lo_button')];//we can reverse them here if needed
var bets = ["h", "l"];
var currentBetIndex = parseInt(betsPatterns[currentPattern][currentPatternSequenceIndex].charAt(currentInnerSequencePosition));
var $betButton = betsButtons[currentBetIndex];
var gameStopped = false;
var patternStartingDateTime = new Date();
function getSecondsBetweenDates(startDate, endDate) {
var diff = endDate.getTime() - startDate.getTime();
return (diff / 1000);
}
function setRandomClientSeed() {
var chaine_CLIENT =
"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var generate, i;
var CLIENT_SEED = "";
var CLIENT_SEED_size = 64;
for (i = 0; i < CLIENT_SEED_size; i++) {
if (!i) {
generate = Math.floor(Math.random() *chaine_CLIENT.length + 1); //un nombre entre 1 et 62
} else {
generate = Math.floor(Math.random() *chaine_CLIENT.length); //un nombre entre 0 et 62
}
CLIENT_SEED += chaine_CLIENT.charAt(generate);
}
$("#next_client_seed").val(CLIENT_SEED);
return CLIENT_SEED;
}
function getRandomWait() {
var wait = Math.floor(Math.random() * maxWait) + 100;//was 100
//console.log('Waiting for ' + wait + 'ms before next bet.');
return wait;
}
function setMultiply() {
var current = $('#double_your_btc_stake').val();
var nbr = parseInt(current * 100000000 * betMultiplier)/ 100000000;
var multiply = nbr.toFixed(8);
$('#double_your_btc_stake').val(multiply);
return multiply;
}
function reset() {
$('#double_your_btc_stake').val(parseFloat(baseBetAmount).toFixed(8));
}
function stop() {
console.log('Game will stop soon! Let me finish.');
gameStopped = true;
}
function start() {
console.log('Game started!');
//change client seed, that have to be changed for every roll
setRandomClientSeed();
//return to base bet amount
reset();
//we start betting
setTimeout(function () {
$betButton.trigger('click');
}, getRandomWait());
}
// Unbind old shit
$('#double_your_btc_bet_lose').unbind();
$('#double_your_btc_bet_win').unbind();
// Loser
$('#double_your_btc_bet_lose').bind("DOMSubtreeModified",function(event) {
if ($(event.currentTarget).is(':contains("lose")')) {
/*when losing, follow current sequence, when finished start the next sequence*/
//save the old bet in current lose sequence and general bets counters
//index: local variable: will save the old value for a bit, till we update them.
index = currentPatternSequenceIndex;
currentInnerSequencePosition++;
currentPatternSequenceIndex =(currentPatternSequenceIndex +parseInt(currentInnerSequencePosition /betsPatterns[currentPattern][index].length) ) %betsPatterns[currentPattern].length;
currentInnerSequencePosition =currentInnerSequencePosition % betsPatterns[currentPattern][index].length;
currentLoseSequenceBetsCounter++;
betsCounter++;
console.log('Bet Stats::: betsCounter:'+betsCounter+';currentLoseSequenceBetsCounter:'+currentLoseSequenceBetsCounter+';currentBet:'+bets[currentBetIndex]);
console.log('You Lose! Betting again.');
//start working on the next bet
//change client seed, that have to be changed for every roll
setRandomClientSeed();
//multiply bet amount
setMultiply();
if(currentLoseSequenceBetsCounter <supportedLoseSequenceBetsLength){
//we still can bet supporting another lose bet, so we build the next bet
//we load next bet index from betsPattern
console.log('currentPattern: '+currentPattern+' || currentPatternSequenceIndex: '+currentPatternSequenceIndex+' || currentInnerSequencePosition: '+currentInnerSequencePosition);
currentBetIndex =parseInt(betsPatterns[currentPattern][currentPatternSequenceIndex].charAt(currentInnerSequencePosition));
//we load the next bet button
$betButton = betsButtons[currentBetIndex];
//we play another new bet
setTimeout(function () {
$betButton.trigger('click');
}, getRandomWait());
}else{
//we can't support another bet! so we stop the game
//nothing to do now, and the game will be stopped. but we need to make sure, that browser didn't refresh automatically
console.log('Game stopped after losing. supported lose sequence reached.');
}
}
});
// Winner
$('#double_your_btc_bet_win').bind("DOMSubtreeModified",function(event) {
if ($(event.currentTarget).is(':contains("win")')) {
/*when winning, stop current sequence and start the next sequence.*/
//the first character in the next looped sequence
currentPatternSequenceIndex =++currentPatternSequenceIndex %betsPatterns[currentPattern].length;
currentInnerSequencePosition = 0;
//save the old winning bet
betsCounter ++;
currentLoseSequenceBetsCounter = 0;
console.log('Bet Stats::: betsCounter:'+betsCounter+';currentLoseSequenceBetsCounter:'+currentLoseSequenceBetsCounter+';currentBet:'+bets[currentBetIndex]);
console.log('You WON! Betting again.');
/*when winning, we check pattern validity. we change pattern every fixed minutes only when we win!!*/
if(getSecondsBetweenDates(patternStartingDateTime,new Date()) >= patternPlayPeriodInSeconds){
//we update the date
patternStartingDateTime = new Date();
//we loop the next pattern and start fresh
currentPattern = ++currentPattern %betsPatterns.length;
currentPatternSequenceIndex = 0;
currentInnerSequencePosition = 0;
console.log('Single Pattern Play Period Reached ==> Moving to the next pattern!');
}
if(!gameStopped){
//start working on the next bet
//change client seed, that have to be changed for every roll
setRandomClientSeed();
//return to base bet amount
reset();
//we load next bet index from betsPattern
console.log('currentPattern: '+currentPattern+' || currentPatternSequenceIndex: '+currentPatternSequenceIndex+' || currentInnerSequencePosition: '+currentInnerSequencePosition);
currentBetIndex =parseInt(betsPatterns[currentPattern][currentPatternSequenceIndex].charAt(currentInnerSequencePosition));
//we load the next bet button
$betButton = betsButtons[currentBetIndex];
setTimeout(function () {
$betButton.trigger('click');
}, getRandomWait());
}else{
console.log('Game Stopped.');
}
}
});
//starting the script
start();
Yoo, I had been using the first version for a while as a base for a bunch of test scripts on freebitco.in, and went to copy it again and noticed you had made a new one. Usually I'd be able to read through it and figure out how to change things myself and improve it. and thats what I plan on doing with this, but this is much more complex than I'm used to.
I'm having trouble understanding the state, action, reward system. How do you define the actions and states. From there i should be able to understand the reward part.
What im ultimately trying to do is make it so that when the profit is in the negatives, the 'punishment' is greater than just losing the bet. and same goes for when it wins and the profit is in the positives, the 'reward' will be greater than winning with negative profit.
Im wanting to have the bot know when to increase and decrease the bet. once i get that im going to want to have the bot know when to increase and decrease the payout multiplier.
Maybe you have some articles you've been reading you wouldnt mind sharing, other than the reinforcejs website and github. Thanks.
I am expecting the DQN was there to improve the "dice guess", so over time, the max loose streak will be lower down (i.e. lower down the min. satoish required to start)
But after running for 2 millions round. I do not actually seeing significant change
Is my understanding correct?
If so, when should we expect the improvement?
On several occasions, I have noticed the bet amount being used by Trevel jumps up from the amount that I have it set to, usually causing unexpected losses of bitcoin. It happened again just now. I notice that these big amounts are usually a couple percent of my total balance - is this behavior related to the value of _amountToKelly, or is it an actual bug? It appears to ignore the value that I have set for _customMaximumBet.
Example log information from a run of several hundred bets where this behavior happened twice, where I stopped betting immediately after the second time (below):
0.00033606
VM70519:387 Profit: -0.00190299
VM70519:397 Using computed probabilities above.
VM70519:331 0.00015716
VM70519:387 Profit: -0.00223905
VM70519:397 Using computed probabilities above.
VM70519:331 0.00000000
VM70519:387 Profit: -0.00239621
VM70519:397 Using computed probabilities above.
_stop = true;
true
VM70519:331 -0.00014103
VM70519:387 Profit: -0.00208189
VM70519:397 Using computed probabilities above.
VM70519:351 Betting Stopped. Your profit is: -0.00208189
VM70519:352 In this round You have won 10 bets and lost 10 bets. Total bets placed are: 20
VM70519:353 In total You have won 250 bets and lost 277 bets. Total bets placed are: 527
VM70519:354 You have a 0.47 probability of winning with Trevel.
Here it jumped from a bet amount of 1 satoshi to 33,606 satoshi, then 15,716 satoshi, then 31,432 satoshi, then back down to 1 satoshi.
My settings are:
var _stop = false,
_rolls = 0,
_currentBalance, _maxBet=0, _x = 0,
_maxNumberOfTrails=10000,
_minNumberOfTrials=5000,
_numberOfSuccesses = 0,
_numberOfTrials = 0,
_winPercentage = 52,
_stopOnNumberOfBets = false, //Change this to true if you wish to stop betting after a specific number of bets
_defaultProb=false,
_swap = true,
_betSpeed = 4000,
/** INFO ON _betSpeed
* If you want bets to go faster decrease the value 3000, recomended minimum is 1500 (at 1500 you'll need really fast internet and hope the freebitco.in server responds as fast)
* If you want to go slower increase the value 3000, recomended max is 5000 (only option if you have tortoise internet)
**/
_verbose = true, //Change this to true if you want to know the stats(profit) after each bet
_numberOfBets = 110, //You can change this but keep the number of bets low (<135 but >75) to increse AI accuracy.
_maxNumberOfBets = 50, //max=150
_minNumberOfBets = 50, // min=50
/** Custom Bet Configuration **/
_useCustomConfiguration=true,//Change to true to use your own configuration
_amountToKelly=5, // Change this to set percentage of your full amount to be used in the Kelly Principle (Can not be more than 100)
_useKellyPrinciple=true,//change to false to use martingale
_customMaximumBet=0.00000500,//This is the maximum bet you want placed
_customMinimumBet=0.00000001,//This is the minimum bet you want placed
_customMultiplier=1.7;// This is the multiplier. the default is 2. INFO: The bet amount will be multiplied by this number incese you loose a bet
So I copied and pasted this script and start gambling, when does the bot take over? All I see is this for the output.
(unknown) Winrate: 0.00 Bets: 1
(unknown) Winrate: 49.90 Bets: 10000
(unknown) Winrate: 50.39 Bets: 20000
(unknown) Winrate: 50.10 Bets: 30000
(unknown) Winrate: 49.89 Bets: 40000
Hello. Do you plan to continue with the development? What are the best settings in your opinion?
Please can anybody help me?
Im not sure if done everything right, i took trevelDQ, i put the trained network into var netString just like this:
var netString={"W1":{"n" :10, "d":24, "w":{"0":0.0023925765403397733,"1":0.041715507090969335,"2":0.021888390238649903,"3":-0.0009391853385634892,"4":0.022507000788136614,"5":0.010639511213428482,"6":0.0012826647767140032,"7":-0.0029160858320425743,"8":-0.01796780336575986,"9":0.022672443128039375,"10":-0.007832676396745026,"11":-0.01850579461846927,"12":-0.011700259716593303,"13":0.000628374696150096,"14":-0.019122314781445476,"15":-0.0583388663305787,"16":0.013655957276794974,"17":-0.017566968641159742,"18":0.009833933367455942,"19":-0.03518118297776568,"20":0.0408489419214892,"21":-0.02608618686810133,"22":-0.003429737655522844,"23":0.009770451021620328,"24":0.01410770805100909,"25":-0.03139741654541435,"26":0.031111624422918555,"27":-0.003848954648549595,"28":0.012183498553807176,"29":-0.01998645708420641,"30":-0.006724626595390829,"31":0.005310766950190668,"32":-0.015524644342140568,"33":-0.028928401987948833,"34":-0.012944071457811089,"35":-0.06218620424803521,"36":-0.027049031282310804,"37":-0.0012133947238548136,"38":0.006354270610894588,"39":-0.022600484619600125,"40":-0.018427681654901756,"41":-0.027582646784811735,"42":-0.04377075439499172,"43":0.010344167930596974,"44":-0.010457416918694448,"45":-0.008091993016985051,"46":0.008672319645495136,"47":0.04325112784304685,"48":-0.04096514836443519,"49":-0.04395467694947917,"50":0.02547501778341822,"51":0.039554361294374035,"52":0.007275896314646853,"53":0.004739097302510623,"54":0.03991856765640677,"55":0.007184925392409339,"56":0.017625001761796242,"57":0.024920351290448558,"58":-0.00615826079973909,"59":0.0016350522524687361,"60":0.016161138130802204,"61":0.025517456704768487,"62":-0.02545507131952735,"63":0.0036360618598252725,"64":0.018206834213719103,"65":-0.025682072627037287,"66":0.0100312248321219,"67":-0.023015477424917545,"68":-0.01303847978661533,"69":-0.013694029083706056,"70":0.016366028546751888,"71":-0.003318077396385832,"72":-0.011193010811942076,"73":-0.026267686887636053,"74":-0.04251753916780317,"75":-0.07058127775249927,"76":-0.0657147601212925,"77":-0.013854085504026645,"78":-0.031594790048150447,"79":-0.01732804261211277,"80":-0.028430129428590745,"81":0.027214854498239745,"82":0.01868249963946485,"83":0.020209397054480254,"84":-0.01658568606288791,"85":0.026344319795758468,"86":0.011190203088180174,"87":-0.03546670632380143,"88":0.005305463719931446,"89":0.005257910492120129,"90":0.004771761851734521,"91":0.031365967065046706,"92":0.003047637825499757,"93":0.017659404304856477,"94":0.027382416581660254,"95":0.020925895416983364,"96":-0.01687460274789406,"97":0.021454458463242492,"98":-0.0012471938319427688,"99":0.01034782942132612,"100":0.02685066054405012,"101":0.021656960615436708,"102":-0.012849907470087192,"103":0.01805413045232617,"104":-0.004931566966478788,"105":0.006520311541459502,"106":0.02435813645686764,"107":0.006817645572144121,"108":-0.021338393684633236,"109":0.00286944810014431,"110":0.03375230802914669,"111":-0.026825375073172238,"112":-0.02115980297742884,"113":-0.03103988196770537,"114":-0.04300222382401059,"115":0.02130765757070038,"116":-0.021180164325246692,"117":-0.03618614897872891,"118":-0.01891251451073892,"119":0.01050026202118535,"120":-0.008075871768834876,"121":-0.034811425222634036,"122":0.0016995591783181203,"123":-0.017650344881800673,"124":0.009642095967872945,"125":-0.000025504562980153146,"126":0.0018029203285039503,"127":0.013234384740577027,"128":-0.0372770952098072,"129":0.0030208793642159193,"130":-0.0012243593402471488,"131":-0.002341006340765817,"132":0.03655162534569215,"133":-0.008170548319799709,"134":0.0038241934200167137,"135":-0.01165933137711159,"136":-0.0017615274539351253,"137":-0.011792070004941261,"138":0.006266635502956271,"139":-0.033307121876295726,"140":-0.007351541627479688,"141":-0.01876229682924831,"142":-0.04237737876138415,"143":-0.03026875860138129,"144":0.021597084637609197,"145":-0.012577309249815594,"146":0.029249658261437397,"147":0.012170767931970378,"148":-0.023651885974338527,"149":0.020686435854327365,"150":-0.015174762380851976,"151":-0.00384707419412265,"152":0.0280638257777172,"153":0.006728850995434008,"154":0.020639473770229434,"155":-0.013738706948945157,"156":-0.053173000680836975,"157":-0.0025286773398094146,"158":-0.00954051653222256,"159":-0.021273767469663755,"160":-0.030675301158921083,"161":0.030209521942635126,"162":0.04163028531549313,"163":-0.0006381561611404614,"164":-0.0046019400638133675,"165":-0.007972341151336267,"166":-0.027135798395529053,"167":-0.024803364927611225,"168":-0.017268863362656886,"169":-0.006220284895158575,"170":-0.03511726179296469,"171":0.006436356163974951,"172":0.014065149789953069,"173":-0.046767146091149084,"174":-0.034930196429677235,"175":0.02937646322813344,"176":0.008531325622594354,"177":-0.012231105432745274,"178":0.015076274760503152,"179":0.00448625847625719,"180":-0.030506011250670737,"181":-0.02086840531962036,"182":-0.011868518852966031,"183":0.022171999622510225,"184":-0.029025840985756383,"185":-0.031152338367179386,"186":0.016296667894623123,"187":-0.015183866723327421,"188":-0.0059567109536374984,"189":-0.013605608384929661,"190":0.01630487488752131,"191":-0.024125280474780467,"192":-0.0073355377436716,"193":-0.031283796784592095,"194":-0.009303105940331246,"195":-0.019892137554844196,"196":0.03999268199400648,"197":0.009444224219226863,"198":0.002671918881159383,"199":0.032491706199356415,"200":0.024246372641324544,"201":-0.0005700355062285601,"202":0.02060188635993488,"203":0.016939323027312613,"204":-0.03499699840542014,"205":-0.05105351027010581,"206":-0.04195850593559798,"207":-0.03127298650747034,"208":-0.007588428193512317,"209":-0.0046029585802638455,"210":-0.022527756042589813,"211":-0.02217593917928543,"212":-0.002069831320825874,"213":0.034996877127942985,"214":0.017451886562628558,"215":0.009899297719319702,"216":-0.01942692004883715,"217":-0.0022115758635712353,"218":-0.010155874037456379,"219":-0.004884936693766227,"220":-0.026184486835125673,"221":-0.011759223403801028,"222":0.044656471116086664,"223":0.02336848486843356,"224":-0.020458733185087372,"225":-0.019597785549344462,"226":0.009052927384547375,"227":0.010051056776690827,"228":-0.012245028259093658,"229":0.025053267013094006,"230":0.054694559709263194,"231":0.0079385659551661,"232":0.002635064840418802,"233":0.013390248804876423,"234":-0.013670952805131023,"235":-0.054888963906016365,"236":-0.003967167132215167,"237":-0.013659943922532745,"238":0.01423808219615499,"239":0.008316574721174103}},"b1":{"n":10,"d":1,"w":{"0":-0.0020860370242000753,"1":-0.003593492292501457,"2":0.005181375364556662,"3":0.03859672545627185,"4":-0.00811978133752935,"5":0.022901925677714076,"6":0.024167562133460073,"7":0.02692800396722249,"8":0.037381107638321656,"9":0.021098709799853937}},"W2":{"n":2,"d":10,"w":{"0":0.03381494044095179,"1":0.020461054386859998,"2":-0.01964189874707836,"3":-0.03539441083769555,"4":0.006255717754153956,"5":-0.009766022749077325,"6":0.03639734454989264,"7":-0.01598061411063054,"8":0.0052980443461223565,"9":-0.00312026563476357,"10":0.017820905721491885,"11":-0.027050763584985038,"12":0.02938041662246762,"13":-0.03975678417885278,"14":-0.03401224310882197,"15":-0.01139647805524638,"16":0.013951290794576104,"17":-0.015420045929063042,"18":-0.0022168643262469026,"19":-0.03193927829973052}},"b2":{"n":2,"d":1,"w":{"0":-0.13247979962126746,"1":-0.1409626654111294}}}
when i execute this console log says undefined, then I execute this:
var netObject=JSON.parse(netString);
and it says undefined again, then i execute this:
agent.fromJSON(netObject);
and then it says that m1 is not defined.
could someone help me? i dont know if i understood correctly the solution must be simple
thank you!
All is needed is to redefine the RefreshPageAfterFreePlayTimerEnds function
RefreshPageAfterFreePlayTimerEnds = function() {}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.