Ir ao conteúdo
  • Cadastre-se
Felippe Ranieri

Javascript roleta

Recommended Posts

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);}

 

Editado por dif
Recuperar tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí parsa, conseguiu a solução? porque eu também estou atras dessa fórmula

Editado por Simon Viegas
Pequeno ajuste no texto (apagar texto que estava duplicado)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Editado por Carlos Zanon

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×