Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

julliana

Palavras randomicas sem repetir

Recommended Posts

Olá pessoal,

Estou precisando muito de uma ajuda.

É o seguinte, tenho uma sequência de palavras, que devem aparecer dentro de um texto dinâmico, e no palco tem um botão que cada vez que clicado aparece uma nova palavra. Mas o problema é que essas palavras não podem se repetir.

Que código tenho que incluir para que as palavras não se repitam? (Tenho conhecimento básico em flash).

Agradeço desde já.

Abraços

 

CODE
palavras = ["SUDDEN","AVAILABLE","TERRIFIC","TOUGH","AMAZING","DEVELOPED","ACTUAL","CURRENT","FORMER","ANCIENT","ENOUGH",

"HARMFUL","WEALTHY","HAZARDOUS","NOXIOUS","POISONOUS","MAIN / MAJOR / KEY","WIDE"];

 

 

btn.onRelease = function(){

txt_palavra = palavras [random(palavras.length)];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente esse:

 

old_palavra = "";
txt_palavra = "";
palavras = ["SUDDEN","AVAILABLE","TERRIFIC","TOUGH","AMAZING","DEVELOPED","ACTUAL","CURRENT","FORMER","ANCIENT","ENOUGH","HARMFUL","WEALTHY","HAZARDOUS","NOXIOUS","POISONOUS","MAIN / MAJOR / KEY","WIDE"];
btn.onRelease = function(){
while(txt_palavra == old_palavra){
txt_palavra = palavras [random(palavras.length)];
}
old_palavra = txt_palavra
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Carneirinho, obrigada por me responder.

Testei aqui e não deu certo, as palavras continuam repetindo, tentei testar até com menos palavras p/ poder acompanhar melhor, mas esse código não deu mesmo, passam duas ou três palavras e uma anterior repete. Teria um outro código, ou uma alteração a ser feita nesse mesmo para resolver esse problema?

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Eder, muito obrigada por me responder. Olhei o tópico que você me passou, e a parte que acredito que possa me ajudar é a que vou colocar abaixo, mas tenho um problema, estou começando a trabalhar com action script e consigo entender pouco dos códigos ainda, seria possível você dar uma olhada nessa parte que vou colocar e me ajudar a adequá-la ao que eu preciso. Estou super perdida no código! Acredito que mais pra frente com mais estudo vou conseguir interpretá-los numa boa, e com isso não só pedir ajuda, mas ajudar os colegas do fórum tambèm, mas no momento estou contando com a ajuda de vcs e com a boa vontade de ajudar que vcs têm. Muiiiiiito Obrigada.

 

 

CODE
palavras = ["BLANK","STATEMENT","INFER","BOLD FACE","UNDERLINED","FRAGMENT / EXCERPT","PASSAGE"];

 

function geraAleatorio(txt_palavra:Number):Array {

var palavras:Array = new Array()

var novo:Array = new Array()

var ale:Number

for(var i = 0; i < limit; i++)

palavras.push(i)

 

while(palavras.length > 0){

ale = Math.round(Math.random() * (palavras.length - 1))

novo.push(palavras.splice(ale, 1))

}

return novo

}

 

palavras.onLoad = function(){

var palavras = new Array();

var rd:Array = geraAleatorio(0);

 

imagens[0] = palavras.childNodes[0].firstChild.nodeValue;

txt_palavra = palavras[rd[0]];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

era pra usar a outra função, que embaralha o array, seria assim:

 

 

function desordenaArray(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
}
var cont = 0
var palavras = ["SUDDEN","AVAILABLE","TERRIFIC","TOUGH","AMAZING","DEVELOPED","ACTUAL","CURRENT","FORMER","ANCIENT","ENOUGH",
"HARMFUL","WEALTHY","HAZARDOUS","NOXIOUS","POISONOUS","MAIN / MAJOR / KEY","WIDE"];

palavras =  desordenaArray(palavras) 

btn.onRelease = function(){
  cont++
  txt_palavra = palavras [cont];
}

 

assim ele vai mostrar todas aleatoriamente, sem repetir, caso você queira re-começar a mostra-las, sete zero na variavel cont de novo

 

eu não testei, pode ter que arrumar algo ai, vai testando

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Eder, obrigada por mais uma vez me responder...

Eu testei o código, e em relação a mostrar as palavras aleatóriamente sem repetí-las deu certinho, o problema é que no caso dessas palavras por ex. que são 18 palavras, aparecem somente 17 palavras e a última aparece como undefined, você sabe o que pode estar acontecendo??? Muito Obrigada.

Um Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí pessoal, alguém sabe me responder pq está aparecendo a última palavra como 'undefined'??????????????????????????

Obrigada!!!!!!!!!!!!!!!!!!!!

abços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só um probleminha de lógica, ele estava somando um numero e depois mostrando:

 

btn.onRelease = function(){
  cont++
  txt_palavra = palavras [cont];
  
}

com isso ele começava pelo numero "1", mas o array começa com o "0"

 

pra resolver é só trocar a ordem em que você soma mais 1 no variável:

 

 

btn.onRelease = function(){
  txt_palavra = palavras [cont];
  cont++
}

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Eder, primeiramente muito obrigada pela resposta, deu certo, as palvras todas aparecem e no final delas no último clique aparece como undefined, (mas as palavras aparecem todas certinho), essé último clique que aparece como indefinido, têm como fazer com que ele não apareça, com que pare na última palavra sorteada????????

Valeu, pela boa vontade de me ajudar e por compartilhar seus conhecimentos. Muito obrigada.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, solucionado a questão acrescentando um if. fica assim...

 

function desordenaArray(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
}
var cont = 0
var palavras = ["lista das palavras"];
palavras =  desordenaArray(palavras) 
btn.onRelease = function(){
  txt_palavra = palavras [cont];
  cont++
 if (txt_palavra == undefined){txt_palavra = "acabou"}// linha da (condição) {ação}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.