sexta-feira, 29 de julho de 2016

Função para Sequências Ordenadas de Combinações

IMPORTANTE: 1. Está funções possui uma Variável Global nomeada "VarG_armDue". O valor da mesma não pode ser alterado, caso seja, a Função não funcionará. 2. As duas funções estão correlacionadas e trabalham juntas. 3. A função começa por padrão contar do 1 em diante, se deseja que ela comece contar do 0. Deve alterar o "for(var i=1;" para "for(var i=0", e quando colocar o parâmetro na função "criaDuelos", adicionar também o "-1", ex: criaDuelos(varexemplo.length-1).

Veja o exemplo em: http://jsbin.com/tuqafiwewi

function criaDuelos(maxOps){

  VarG_armDue = '';

  for(var e=0;e<maxOps;e++) geraDuelo(maxOps);

}
function geraDuelo(max){

  var arm = [];
  var cont = 0;
  var adCont = '';
  var ad = true;

  for(var i=1;i<max;i++){
 
    for(var a=i+1;a<max+1;a++){
   
      ad = true;
   
      cont++;
      adCont = (cont < 10) ? '0'+cont : cont;
   
      if(arm.indexOf(i) >= 0) ad = false;
      if(arm.indexOf(a) >= 0) ad = false;
      if(VarG_armDue.indexOf(i+' '+a) >= 0) ad = false;
   
      if(ad){
        arm.push(i,a);
        VarG_armDue += i+' '+a+' / ';
     
        $('#jogo').append(''+adCont+'. <b>'+i+','+a+'</b><br>');
     
      }
   
    }
 
  }

  $('#jogo').append('<br>');

}

Nenhum comentário:

Postar um comentário