Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problemi "Random"

  1. #1

    Problemi "Random"

    Ciao a tutti, come posso fare per far si che immagini caricate in random vengano riprodotte una sola volta?

  2. #2
    beh creati una funzione che chiami quando vuoi sfruttando gli array questo uno spunto ... da adatatre, da verificare ma dovrebbe funzionare

    :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 dovrebbe darti in array sempre un numero  diverso 
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());

    il trace ti restituisce una numero randome senza mai ripetere i precedenti quindi poi basta fare il load movie di QuelloChevuoi() e risolvi :-9

    ciao
    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

  3. #3

    Per Enigma 79

    il problema è che non conosco tanto bene gli Array, e non riesco a collegare lo script che ho con quello che mi hai passato. Questo è quello che ho caricato per caricare in random...

    function num(min:Number, max:Number):Number {
    var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
    return randomNum;
    }
    var myArray:Array = Array(1);
    myArray.push();
    myArray = mario;

    for (var i = 0; i < 1; i++) {
    var n:Number = num(495, 638);

    if (num==mario ) {break;
    trace(num==mario);
    }

    }

    img = "immagini/IMG_0"+n+".jpg";
    l = n-493;
    loadMovie(img,this.foto);

  4. #4

    random e function

    ciao enigma_79
    avrei una cosa da chiderti a riguardo dello script postato
    come posso usare il dati della funzion QuelloCheVuoi()?
    cioè come posso dire ad un MC goto and stop a QuelloCheVuoi()?
    grazie mille Luca
    javascript:void(0);

    Originariamente inviato da enigma_79
    beh creati una funzione che chiami quando vuoi sfruttando gli array questo uno spunto ... da adatatre, da verificare ma dovrebbe funzionare

    :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 dovrebbe darti in array sempre un numero  diverso 
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());
    trace(QuelloCheVuoi());

    il trace ti restituisce una numero randome senza mai ripetere i precedenti quindi poi basta fare il load movie di QuelloChevuoi() e risolvi :-9

    ciao
    luka
    _._._

    www.tinybros.com

  5. #5
    tuoclip.gotoAndStop(QuelloCheVuoi());
    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

  6. #6

    grazie

    Grazie Enigma
    ora provo a far funzionare lo script

    al max ti richiedero una consulenzina

    Luca
    luka
    _._._

    www.tinybros.com

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao

    La soluzione di Enigma funziona anche se questo metodo, sfruttando una condizione, fa ripetere il calcolo svariate volte finchè non trova un valore non ancora presente tra quelli già restituiti.
    Ma in questo modo il nostro pc lavora inutilmente. :master:

    Per essere pignioli, io proporrei quest'altro script in cui il valore viene calcolato solo una volta ma sarà comunque univoco.

    codice:
    tot = 6;
    nums = new Array();
    for (var id = 0; id<tot; id++) {
    	nums[id] = id+1;
    }
    function sudoku() {
    	var rnd = random(nums.length);
    	var val = nums[rnd];
    	nums.splice(rnd, 1);
    	return val;
    }
    trace(sudoku());
    trace(sudoku());
    trace(sudoku());
    trace(sudoku());
    trace(sudoku());
    trace(sudoku());
    Alla prossima...
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    hmmm interessante...
    ne approfitto per chiederti una cosa
    riesci a spiegarmi le varie righe cosa servono di preciso
    così se devo modificarlo ho una visione completa

    sempre se ti va è chiaro
    grazie mille
    luka
    _._._

    www.tinybros.com

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Certo
    Commento riga per riga

    Codice PHP:
    // identifico un valore massimo
    tot 6;
    // creo l'array nums
    nums = new Array();
    // assegno ad ogni elemento dell'array un numero da 1 a tot
    for (var id 0id<totid++) {
        
    nums[id] = id+1;
    }
    // funzione sudoku, ovvero "mai lo stesso numero"
    function sudoku() {
        
    // calcolo un numero casuale compreso
        // tra 0 e la lunghezza corrente dell'array
        
    var rnd random(nums.length);
        
    // ottengo il valore dell'elemento che ha come indice
        // il numero casuale calcolato
        
    var val nums[rnd];
        
    // elimino dall'array l'elemento con tale indice
        // riducendo pertanto la lunghezza dell'array stessa
        
    nums.splice(rnd1);
        
    // restituisco il valore ottenuto
        
    return val;
    }
    // ogni volta che si richiama la funzione sudoku sarà restituito
    // un numero compreso tra i valori restanti dell'array,
    // dopo di che l'elemento relativo a tale valore sarà eliminato 
    // dall'array che andrà, di volta in volta, a ridimensionarsi
    // e a indicizzare nuovamente i valori restanti, fino a quando
    // non ci saranno più elementi nell'array 
    Se ad esempio si imposta tot=6, la funzione sudoku potrà essere richiamata 6 volte in cui saranno restituiti 6 numeri diversi.
    Dopo la sesta volta che si richiama la funzione sarà restituito il valore undefined.

    Tutto qui
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.