ZecaLoteiro 0 Denunciar post Postado Junho 21, 2008 Olá alguém poderia me ajudar ? Estou com um problema, preciso embaralhar uma array, eu até tenho um código pra isso, porém se eu uso o código, não consigo mais usar os valores como númericos.... higi, tipo assim, se meu array original tem os numeros { 1, 2, 3 } eu até embaralaho e fica { 3, 1, 2 } porém se eu tentar fazer array[0] + 2, eu tenho como resultado undefined. Alguém poderia me ajudar a embalhar o array para que eu consiga utilizar o conteúdo como número ? Segue abaixo a função que uso para embaralhar: CODE //============== EMBARALHAR ===============// function embaralha(lista:Array):Array { var novo:Array = new Array(); var ale:Number; while (lista.length>0) { ale = Math.round(Math.random()*(lista.length-1)); novo.push(lista.splice(ale, 1)); } return novo; } //==========================================// Alguém pode me ajudar ? Thanx ! Opa, tenho uma outra dúvida.... Qual é a diferença entre: var cod:Array = new Array (1,2,3) e var cod:Array = [1,2,3] Pq dependendo do jeito q eu declaro, eu consigo ou não fazer algumas operações. Ajda aee. plz !!! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 23, 2008 são novos metodos de contrução de arrays, que permite maior flexibilidade e um conjunto de funções recursivas para array, implementados no AS3 faça testes com os exemplos desse artigo: http://www.onebyonedesign.com/tutorials/array_methods/ Compartilhar este post Link para o post Compartilhar em outros sites
ZecaLoteiro 0 Denunciar post Postado Junho 23, 2008 Sorry... Malz ae, esqueci de postar, utilizo Flash 8 , AS 2.0 Alguma solução ??!? Valew... Obrigado pela resposta e pela atenção... Thanx ! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 24, 2008 terá que usar técnicas de POG mesmo! rss Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Junho 24, 2008 Olá amigo fiz um algoritmo bem simples aqui so pra ilustrar o funcionamento. var vetor1:Array = new Array(1,2,3,4,5,6); var vetor2:Array = new Array(); var str:Number; for(i=0;i<vetor1.length;i++){ str=random(vetor1.length); vetor2[i] = str; trace(vetor2) }O que acontece é o seguinte na hora que você testar o codigo, podera aparecer "0" ai você vai se perguntar da onde veio esse "0", é por causa do metodo random() que ele retorna um valor de 0 a algum valor, entao pode ocorrer de ele retornar 0 na rearrumação do vetor, assim como pode nao ocorrer, tem um vetor 1 com valores pre definidos entao eu crio um segundo vetor que recebera o numeros desse vetor embaralhados e imprimo cada etapa do preenchimento do vetor. abs Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 25, 2008 o metodo do kisuke está até melhor o uso da função array.push consome mais processamento do que instanciar um array no formato array[] = valor Compartilhar este post Link para o post Compartilhar em outros sites
ZecaLoteiro 0 Denunciar post Postado Julho 1, 2008 Oláa... valew pela força... Mudei o algorítimo, pq ele não estava embaralhando, estava duplicando.. etc... Valew mesmo pela força.... segue a função: var lista1:Array = new Array(1,2,3,4,5,6) lista1 = embaralha(lista1) function embaralha(lista1:Array):Array { var lista2:Array = new Array(); var str:Number; for (i=lista1.length; i>=lista1.length; i--) { str = random(lista1.length); lista2[i-1] = lista1[str]; lista1.splice(str, 1); } return lista2; } Compartilhar este post Link para o post Compartilhar em outros sites