..:: MX Studio Fóruns ::..: randomizar pergunta - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

randomizar pergunta game ja pronto

#1 User is offline   Gisa_Iagami 

  • Group: Membros
  • Posts: 57
  • Joined: 01-June 06

Posted 26 September 2006 - 04:14 PM

Galera...depois do game quizz pronto o cliente me pediu pra fazer a escolha randomica
Ja tenho o codigo e o game esta pronto
Como adaptar?
Meu codigo ta assim:
CODE

quiz.onLoad = function(ok:Boolean):Void  {
//Condicional if, para verificar se os dados foram recebidos com sucesso.
if (ok) {
 _global.dados = quiz;
 //Acesse e resgate a quantidade de nodes do XML, que é o valor da quantidade de perguntas
 //totalPerguntas = this.firstChild.childNodes.length;
 totalPerguntas = 10;
 //Execute a função montaQuiz, que será criada logo mais abaixo, e passe como argumento da função
 //O primeiro node do XML contendo a primeira pergunta;
 montaQuiz(this.firstChild.childNodes[0]);
 limpaCampos();
}
};
//Função montaQuiz, responsável por exibir a pergunta, e recebe como argumento um node do XML para
//preencher os componentes
function montaQuiz(xmlNodes) {
//Aqui irei usar a propriedade text, do campo de texto qtd, para exibir a quantidade de perguntas, e a pergunta atual
qtd.text = ' '+parseInt(perguntaAtual+1)+" / "+totalPerguntas;
//Exibe a pergunta no campo de texto
perg.text = xmlNodes.childNodes[0].childNodes;
_root.onEnterFrame = function() {
 tempo++;
 if (tempo == 25) {
  delete _root.onEnterFrame;
  tempo = 0;
  for (var i = 1, x = xmlNodes.childNodes.length; i<x; i++) {
   //Aqui ele deixa deselecionado todas as vezes que ele executar a função
   this['r'+i].visible = true;
   this['r'+i].selected = false;
   this['t'+i].text = xmlNodes.childNodes[i].childNodes;
   //theme do radiobutton
   this['r'+i].setStyle("themeColor", "cvmtheme");
   //this['r'+i].move(5, 100);
   //muda a fonte do radiobutton
   this['r'+i].setStyle("fontFamily", "verdana");
   //muda o tamanho da fonte
   this['r'+i].setStyle("fontSize", "11");
   //justifica o texto
   this['r'+i].setStyle("textAlign", "justify");
   //A propriedade data é a que iremos usar para saber qual é a alternativa certa
   this['r'+i].data = xmlNodes.childNodes[i].attributes.certa;
   //o Evento clickHandler acontece quando você clica em qualquer dos radiobuttons
   this['r'+i].clickHandler = function() {
    //A variável escolha recebe o valor de this, que corresponde ao radiobutton clicado
    escolha = this;
   };
   barradotempo.play();
  }
 }
};
}


Teria como fazer um aleatorio em cima disso?
Puts...pra entregar amanha >.<
0

#2 User is offline   Gisa_Iagami 

  • Group: Membros
  • Posts: 57
  • Joined: 01-June 06

Posted 27 September 2006 - 01:00 PM

já que ninguem respondeu sad.gif
Agora eu consegui randomizar a primeira mas nao consigo randomizar as outras
Acho q por conta dos valores do totalde perguntas e perguntaAtual
Eu no xml tenho mais do q 10 perguntas
Cada xml é diferente: ex: 1 tem 18 questoes, outro 20
E isso vai variar pq vao trocar as questoes de 3 em 3 meses
Foi me ensinado no forum o seguinte codigo:
CODE

//Função que verificará se há um elemento existente na array
Array.prototype.procurar = function(value) {
   for (var i:Number = 0; i < this.length; i++) {
       if (this[i] == value) {
           return true;
       }
   }
   return false;
};


quiz.onLoad = function(ok:Boolean):Void  {
   //Condicional if, para verificar se os dados foram recebidos com sucesso.
   if (ok) {
       _global.dados = quiz;
       //Acesse e resgate a quantidade de nodes do XML, que é o valor da quantidade de perguntas
       //totalPerguntas = this.firstChild.childNodes.length;
       totalPerguntas = 10;


       //Criando a array que conterá as perguntas utilizadas
       perguntasRespondidas = Array();

       //Sorteando uma pergunta
       do {
           var sorteio:Number = Math.floor(Math.random()*totalPerguntas);//sorteia de 0 a 9, no caso de 10 perguntas
       } while (perguntasRespondidas.procurar(sorteio));

       //Montando a pergunta
       montaQuiz(this.firstChild.childNodes[sorteio]);

       //Adicionando a pergunta já feita na array
       perguntasRespondidas.push(sorteio);

       limpaCampos();
   }
};
//Função montaQuiz, responsável por exibir a pergunta, e recebe como argumento um node do XML para
//preencher os componentes
function montaQuiz(xmlNodes) {
   //Aqui irei usar a propriedade text, do campo de texto qtd, para exibir a quantidade de perguntas, e a pergunta atual
   qtd.text = ' ' + parseInt(perguntaAtual + 1) + " / " + totalPerguntas;
   //Exibe a pergunta no campo de texto
   perg.text = xmlNodes.childNodes[0].childNodes;
   _root.onEnterFrame = function() {
       tempo++;
       if (tempo == 25) {
           delete _root.onEnterFrame;
           tempo = 0;
           for (var i = 1, x = xmlNodes.childNodes.length; i < x; i++) {
               //Aqui ele deixa deselecionado todas as vezes que ele executar a função
               this['r' + i].visible = true;
               this['r' + i].selected = false;
               this['t' + i].text = xmlNodes.childNodes[i].childNodes;
               //theme do radiobutton
               this['r' + i].setStyle("themeColor", "cvmtheme");
               //this['r'+i].move(5, 100);
               //muda a fonte do radiobutton
               this['r' + i].setStyle("fontFamily", "verdana");
               //muda o tamanho da fonte
               this['r' + i].setStyle("fontSize", "11");
               //justifica o texto
               this['r' + i].setStyle("textAlign", "justify");
               //A propriedade data é a que iremos usar para saber qual é a alternativa certa
               this['r' + i].data = xmlNodes.childNodes[i].attributes.certa;
               //o Evento clickHandler acontece quando você clica em qualquer dos radiobuttons
               this['r' + i].clickHandler = function() {
                   //A variável escolha recebe o valor de this, que corresponde ao radiobutton clicado
                   escolha = this;
               };
               barradotempo.play();
           }
       }
   };
}

mas ele so roda no primeiro item (o primeiro item é escolhido o outro nao)
Pra ir pra proxima pergunta eu uso o seguinte codigo
CODE

resultado = function () {
//Zerando a variável escolha
escolha = '';
if (perguntaAtual<totalPerguntas-1) {
 //incrementando a variável perguntaAtual, para passar para a próxima pergunta;
 perguntaAtual++;
 //Executa a função montaQuiz, para exibir a pergunta de acordo com a variável perguntaAtual
 montaQuiz(quiz.firstChild.childNodes[perguntaAtual]);
} else {
 //Executa a função mostraResultado.
 mostraResultado();
}
};

Acho q o problema esta ai mas nao consegui resolver
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)