Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di bir
    Registrato dal
    May 2003
    Messaggi
    124

    random... ma non troppo

    Ho un loop in cui devo estrarre ad ogni giro un numero random tra 1 e 6.
    Per estrarre un numero a caso ho usato questo codice:

    var totalNum = 6;
    var rnd = Math.random()*totalNum;
    var frase = (parseInt(rnd)+1);

    Fin qui tutto ok.
    Verrei però che un numero estratto non venga richiamato fino a quando non sono usciti tutti gli altri 5 numeri rimanenti.
    Come posso fare?

    Garzie,

    Bir

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    155
    io userei gli array



    codice:
    valore_array = new Array();
    function NumRandom(){
      var totalNum = 6;
      var rnd = Math.random()*totalNum;
      return(parseInt(rnd)+1);
    }
    
    function VerificaArray(numeroRand){
       for(i=0;i<6;i++){
          if(valore_array[i] == numeroRand)
             return false;
       }
       valore_array.push(numeroRand);
       return true;
    }
    
    
    //esce solo quando il numero è diverso da quelli memorizzati
    while(VerificaArray(NumRandom());
    è scritto alla veloce e anche un po' in pseudocodice(sicuramente non è corretto)
    potrebbe essere uno spunto
    ciao ciao

  3. #3
    Utente di HTML.it L'avatar di bir
    Registrato dal
    May 2003
    Messaggi
    124
    Grazie, ma.....
    ....sono talmente membro junior che ho provato a sistemare il codice ma non ci sono riuscito.

    sob sob

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    155
    all'interno di un nuovo filmato mettici un bottone con instanza ancora.

    ora nel primo frame incolla questo codice

    codice:
    valore_array = new Array();
    function NumRandom(){
      totalNum = 6;
      rnd = Math.random()*totalNum;
      return(parseInt(rnd)+1);
    }
    
    function VerificaArray(numeroRand){
       for(i=0;i<6;i++){
          if(valore_array[i] == numeroRand)
             return false;
       }
       valore_array.push(numeroRand);
       return numeroRand;
    }
    
    ancora.onPress = function(){								
    	trace(VerificaArray(NumRandom())); //<- restituisce il num che ti interessa 
    									   //false se non l'ha trovato	
    	//solo di verifica per vedere cosa c'è nell'array
    	a = "";
    	for(i=0;i<6;i++)
    		a += valore_array[i] + "|" ;
    	trace(a);
    }
    ti mostro l'output
    codice:
    5
    5|undefined|undefined|undefined|undefined|undefined|
    1
    5|1|undefined|undefined|undefined|undefined|
    6
    5|1|6|undefined|undefined|undefined|
    4
    5|1|6|4|undefined|undefined|
    false
    5|1|6|4|undefined|undefined|
    false
    5|1|6|4|undefined|undefined|
    false
    5|1|6|4|undefined|undefined|
    false
    5|1|6|4|undefined|undefined|
    3
    5|1|6|4|3|undefined|
    false
    5|1|6|4|3|undefined|
    2
    5|1|6|4|3|2|
    come potrai capire l'ultimo numero è inutile cercarlo perchè logicamente è quello che manca.
    se hai problemi chiedi pure

    ciao

  5. #5
    Utente di HTML.it L'avatar di bir
    Registrato dal
    May 2003
    Messaggi
    124
    Ok funziona.
    Ma se volessi togliere il bottone e fare un'estazione ciclica sulla time line principale?
    Non sono riuscito, ma sento che tu ce la puoi fare!
    :-)

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    155
    Originariamente inviato da bir
    Ok funziona.
    Ma se volessi togliere il bottone e fare un'estazione ciclica sulla time line principale?
    Non sono riuscito, ma sento che tu ce la puoi fare!
    :-)
    ahahahahah xrò la prox volta la fai tu

    beh creati una funzione che chiami quando vuoi :P

    codice:
    valore_array = new Array();
    
    function NumRandom(){
      totalNum = 6;
      rnd = Math.random()*totalNum;
      return(parseInt(rnd)+1);
    }
    
    function VerificaArray(numeroRand){
       for(i=0;i<6;i++){
          if(valore_array[i] == numeroRand)
             return false;
       }
       valore_array.push(numeroRand);
       return numeroRand;
    }
    
    function QuelloCheVuoi(){					
    	do {
      		a = VerificaArray(NumRandom());
    	} while (a == false)		
    	return(a);
    } 
    
    //esempio
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.