Tu propio Bot para Faucet de Bitcoins

in #spanish7 years ago

essttt.PNG

Multiplica tus satoshis en freebitco.in usando este novedoso bot programado y probado desde cero por mi mismo. Mi intención es mostrar la importancia de aprender cosas básicas de programación y ver que es muy sencillo. Primero te comento que la faucet donde funciona es un clásico de las páginas que ofrecen satoshis y viene pagando desde hace ya varios años. Además el bot trabaja en la sección "MULTIPLY BTC" donde cada quien tiene sus propios criterios y teorías.

Aunque en la parte de abajo te proporciono el código completo y bien desglosado, mi intención es que comprendas sus partes, pero también si tu ya tienes una estrategia entonces el bot te ayudará en la automatización del juego.

A continuación la interfaz del multiplicador de la página:

bet - copia.PNG

  1. Escribes el monto que deseas apostar
  2. Botón "BET HI" para accionar la apuesta por un número mayor a 5250
  3. Botón "BET LO" para accionar la apuesta por un número menor a 4750
  4. En esta zona puedes ajustar la probabilidad de ganar, es decir, en lugar de poner 47.50%, puedes poner digamos 50% para que sea aparentemente más justo el juego, sin embargo tus ganancias se reducen y tus derrotas te cuestan más satoshis, así se aseguran de que la casa siempre tenga una ganancia. Y también es el "secreto y razón" por la que otros bots te dan la ilusión de tener algunas ganancias, aunque a la larga, una momentánea racha de derrotas cuesta más que lo que ganaste en 3 horas :).

Y así se ve si presionaste "BET HI"(osea apostaste por un número mayor a 5250), apostaste 8 satoshis, el resultado fue 9393 (esa zona se llama ROLL), por lo tanto ganamos:
bett.PNG

Es hora de usar el bot

Usando el navegador Chrome y en el apartado de la página MULTIPLY BTC presiona ctrl + shift + i o sigue el procedimiento de la siguiente imagen:
ctrlshifti.png

Ahora sale la ventana de desarrollador, verificamos que se en cuentre en la consola como vemos a continuación:
consol.PNG

Lo que te muestro al final es el código completo del bot escrito en el lenguaje del internet, Javascript, como podrás ver puse comentarios (los que inician con "//") estos sirven para que ubiques cual es la función de esos fragmentos de código e incluso puedas modificarlos si gustas. Bien pues copia todo este código y pegalo en el prompt de la consola, luego presionas ENTER:
paste.PNG

Puedes ajustar el tamaño de la consola desde los bordes con el mouse

Ejemplo para usar tu bot

Si escribes en la consola jicer(50, 4, 3, 12, 45) significa lo siguiente:

  1. Tu bot juega 50 veces
  2. Usa una apuesta inicial de 4 satoshis
  3. Hace la apuesta inicial cada que encuentra un patrón de repeticiones de tamaño 3
  4. Se detiene si gana 12 satoshis (de lo contrario se detendrá hasta llegar a los 50 juegos)
  5. Y la máxima apuesta que llega a hacer es un 45 % de tu Balance total
  6. Observa que el bot siempre hace lo que tu le programes hacer, tiene dos formas de detenerse, o bien cuando llega al objetivo de ganancias, 12 satoshis en el ejemplo, o hasta jugar 50 veces.*

Mira la imagen:

jicer.PNG

El código de tu bot

//Copyright 2017 Jesús Cirino Rosales Palestino
//This is a example of building a bot for didactic purposes

// Inicia configuración previa y lectura de información de la página
var MIN  = 0.00000001, PATTERN = 2, DELAY= 1300,
    L    = 0, H = 1, R = -1, LLO = 4750, LHI = 5250;
var _bal = document.getElementById('balance2');
var _bet = document.getElementById('double_your_btc_stake');
var _l   = document.getElementById('double_your_btc_bet_lo_button');
var _h   = document.getElementById('double_your_btc_bet_hi_button');
var _lastRoll = 
       document.getElementsByClassName(
      "large-1 small-1 columns center lottery_winner_table_box lottery_winner_table_second_cell");
// Termina configuración previa y lectura de información de la página
// Inicia funciones de actualización de balance y último resultado del Roll
function getBal (){
    return parseFloat(_bal.innerText);
}
function getLastRoll(){
    return Number(_lastRoll[6].innerText);
}
// Termina funciones de actualización de balance y último resultado del Roll
/*
 * Inician funciones del comportamiento del bot
 */
// Función para pausar ejecuciones del bot
function sleep(x) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(x);
    }, DELAY);
  });
}
// Función de apuesta automatica
async function bet(iter,satos,types){
    _bet.value = (satos*MIN).toFixed(8);
    for (var i = 0; i<=iter;i++){
        var x = await sleep(0);
        if(types===L)
            _l.click();
        else if(types===H)
            _h.click();
    }
}
// Función para analizar tipo de patrón de repeticiones
function existRep(array,n){
    var r={}; r.len=0; r.type=R;
    var c = 1, flag = H, length = array.length;
    if(array.length < n)
        return r;
    for(var i=length - 1; i>=length - n;i--)
    {
            if(array[i] > LLO && array[i] < LHI)
            return r;
        else if(array[i]>LHI && array[i-1]>LHI)
            c++;
        else if(array[i]<LLO && array[i-1]<LLO)
            c++;
        else
            i=0;
    }
    r.len  = c;
    r.type = (array[length - 1]>LHI)? H :(array[length - 1]<LLO)? L: R;
    return r;
}
//Función de apuesta según el tipo del patrón
function unicBet(satos,types){
    _bet.value = (satos*MIN).toFixed(8);
        if(types===L)
    _l.click();
    else if(types===H)
    _h.click();
    else
        if(Math.random()>.49)
            _h.click() ;
        else 
            _l.click();
}
//Función para saber el tipo de Roll menos repetido del historial
function getMajor(array){
    var rHi = array.filter(function(i){
    return i>5000;    
});
    return (rHi.length/array.length > 0.5)? H:L;
}
/*
 * Terminan funciones del comportamiento del bot
 */
// Inicia bot
var EVENTS=[];
async function jicer(n, bet=3,patt=PATTERN, objetive=30, limit=50){
    var balIni  = getBal(), lastBet = H, flag = false, myBet = bet;
    PATTERN     = patt;
    for(var i=0; i<PATTERN; i++){
        unicBet(1, R);
        var x = await sleep(0);
        EVENTS.push(getLastRoll());
    }
    var pattern = existRep(EVENTS,PATTERN);
    for(var i=0; i<(n-patt); i++){
        if(pattern.len >= PATTERN){
            if (pattern.type === H){
                unicBet(myBet, L);
                lastBet = L;
                flag = true;
            }
            if (pattern.type === L){
                unicBet(myBet, H);
                lastBet = H;
                flag = true;
            }
        }
        else if (flag && (pattern.type === R)){
            unicBet(myBet, getMajor(EVENTS));
                flag = false;
            myBet  = bet;
        }
        else{
            unicBet(1, getMajor(EVENTS));
        }
        var x = await sleep(0);
        EVENTS.push(getLastRoll());
        pattern = existRep(EVENTS,PATTERN);
        if (flag && (lastBet === pattern.type)){
                flag = false;
            myBet  = bet;
        }
        else if (flag){
                myBet = myBet * 2;
            if (myBet*MIN > getBal()*limit*.01)
                myBet = bet;
        }
        if((getBal() - balIni) >= objetive * MIN)
            i = n;
    }
}
//Termina bot

Recomendaciones importantes

  1. Dependiendo de como uses los parámetros serán las ganancias que tengas, cada quien tiene sus propias estrategias
  2. No todo es azar, hay algo cierto, para que cualquier metodología tenga ganancias duraderas, se deben tener suficientes satoshis para jugar, en eso coincido con todos los demás.
  3. Los parámetros del ejemplo son buenos para 1000 satoshis en adelante y aún así nos podemos encontrar rachas perdedoras, pero o sorpresa! por eso es que este bot es totalmente configurable y adaptable.
  4. Si eres nuevo en este juego, no uses el bot, hasta que hayas jugado manualmente y lo comprendas bien
  5. La mejor manera de evitar esas rachas perdedoras es actualizar la página luego de cada ejecución de jicer

Saludos y si tienen dudas estaré atento a sus comentarios

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.030
BTC 62719.50
ETH 2525.19
USDT 1.00
SBD 2.70