Ir ao conteúdo
  • Cadastre-se

Javascript roleta


Posts recomendados

Pessoal, estou com um código em JavaScript para decifrar, a respeito de uma roleta.

Resumindo o assunto, o código contem um cálculo que fornece o número que vai aparecer na roleta. Gostaria de entender esse cálculo, porém sou mt leigo em programação, principalmente em Java.

Alguém consegue decifrar?

 

Essa é a parte responsável pelo cálculo

$(function(){'use strict';window.roulette=({_numbers:[0,4,12,3,13,2,14,1,8,7,9,6,10,5,11],
        _numbersReversed:[0,7,5,3,1,13,11,9,8,10,12,14,2,4,6],
        _order:[0,11,5,10,6,9,7,8,1,14,2,13,3,12,4],
        _timeMax:25,
        _wheel:$('.wheel'),
        _baseSize:null,
        _timeLeft:0,_timeDate:0,_position:0,_timerWinner:$('.timer-winner'),_timerLeft:$('.time-left'),_timerWidth:$('.timer-width'),
        _colorCounters:{red:{my:new CountUp('bet-my-red',0,0),total:new CountUp('bet-total-red',0,0)},
            green:{my:new CountUp('bet-my-green',0,0),total:new CountUp('bet-total-green',0,0)},
            black:{my:new CountUp('bet-my-black',0,0),total:new CountUp('bet-total-black',0,0)}},
        _moving:false,preparing:false,first:true,minBetToDisplay:200,scale:function(){if(this.moving)return;this._wheel.css({'background-position-x':-1*(this._position-(this._wheel.width()- 1125)/ 2)
});},
_numberToColor:function(num){if(num===0){return'green';}
else if(num<8){return'red';}
    else{return'black';}},
        sounds:{tap:new buzz.sound('/sounds/tap.wav',{preload:true}),button:new buzz.sound('/sounds/button2.wav',{preload:true}),
    roulette:new buzz.sound('/sounds/roulette.wav',{preload:true}),
    rouletteend:new buzz.sound('/sounds/rouletteend.wav',{preload:true})},
    _bets:{red:[],green:[],black:[]},
    set timeLeft(x){x=parseFloat(x);if(x<=0||isNaN(x))
    {if(roulette.preparing){x=locale.preparing;}else{x=locale.rolling;}
this._timerWidth.css('width','0');}
else{x=x.toFixed(2);}
this._timeLeft=x;this.updateTimer();},get timeLeft(){return this._timeLeft;},countDownInterval:null,
rotateTo:function(number,diff,rotations)
        {if(this.moving)
            
            return;clearTimeout(this.rouletteTIMEOUT1);clearTimeout(this.rouletteTIMEOUT2);
            var self=this;rotations=rotations||5;
            diff=diff?diff*0.9-0.45:0;
            this._position=(this._order.indexOf(number)+ diff)*75;
            var position=this._position-(this._wheel.width()- 1125)/ 2;
            this.moving=true;$('.bet-button').addClass('disabled');
            var duration=Math.round(Math.random()*3+3)*1000;
            this._wheel.css({backgroundPosition:(-1*(position+ rotations*1125))+'px 0px'}).addClass('moving').css('transition-duration',duration+'ms');
            this.sounds.roulette.play();
            this.rouletteTIMEOUT1=setTimeout(function(){self.sounds.rouletteend.play();},duration- 700);
            this.rouletteTIMEOUT2=setTimeout(function(){self._wheel.removeClass('moving').css('transition-duration','0ms');
                self.moving=false;
                self.scale();
                self.updateHistory(number);
                var winningColor=self._numberToColor(number);
                var a=$('#bet-total-'+ winningColor);
                var b=$('#bet-my-'+ winningColor);
                Object.keys(self._colorCounters).forEach(function(color){if(color==winningColor)return;
                    self._colorCounters.total.update(0);
                    self._colorCounters.my.update(0);});
                self._colorCounters[winningColor].total.update(parseInt(a.data('value'))*(number===0?14:2));
                self._colorCounters[winningColor].my.update(parseInt(b.data('value'))*(number===0?14:2));
                self._timerWinner.text('Winner: '+ number+'!').show();
                $('.timer-text-number').hide();
                $('.roulette-color').addClass('lose');
                $('.roulette-color.'+ winningColor).removeClass('lose').addClass('win');},duration);}

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Felippe Ranieri Caro Felippe,  Por favor informe aqui qual foi a sua SOLUÇÃO encontrada.

Apagar o conteúdo depois que resolver fere o espírito do fórum.

Postando como resolveu, ajudará os outros com a mesma dúvida. 

 

PS: javascript e java são linguagens totalmente diferentes. Não confunda.

Link para o comentário
Compartilhar em outros sites

  • 9 meses depois...
  • 3 semanas depois...

Rapaz, quando a roleta entra em execução é disparada uma ação no servidor para saber qual o número ela deve marcar. Quando ela recebe o número ela calcula as rotações e velocidade que deve ir parando para cair no número desejado...

 

Deixa eu mostrar +- como ela faz:

 

1. Começa a girar, e após começar a girar e travar as apostas e etc... ela envia uma requisição ao servidor para saber qual número ela deve marcar.

2. Ao receber o retorno, ela calcula o número de voltas com a velocidade atual até parar no número indicado...

 

Mesmo que você consiga saber pelo calculo, o número, você não vai conseguir apostar antes de saber qual é o número, pois algumas dessas variáveis são dadas pelo servidor :v

 

'timeMax' = timeOut para resposta do servidor e parametro para aumentar o freio da roleta para "todos" pararem juntos caso você receba a resposta em um tempo diferente de outra pessoa:v

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!