Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    numeri random non ripetibili

    ciao a tutti,

    carico da una cartella delle immagini a caso (si chiamano 1.jpg, 2.jpg...), e vorrei che non si ripetessero. come fare?

    questa è la funzione che uso adesso:

    codice:
    function carica_v(){
    foto=random(51)+1+".jpg";
    loadMovie("./cambio sezioni/foto/verticali/"+foto, i+"v");
    }
    ovviamente qua possono ripetersi.

    io penso che invece di fare così dovrei prima creare un array che controlla se stesso prima di popolarsi... o... boh
    non so bene come fare...


    avete già uno script pronto? o qualcosa? grazie.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182

    Re: numeri random non ripetibili

    Originariamente inviato da eloderma
    il mio script fà una verifica sul numero precedente ed evita che esca nuovamente lo stesso numero, ma non so se ti va bene così o vuoi proprio che il numero che è già uscito non riesca proprio più

    ps. non posto il mio script perchè non l'ho con me, appena posso lo inserisco

  3. #3
    non lo voglio proprio più.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da eloderma
    non lo voglio proprio più.
    allora ti occorre registrarlo in un array da verificare ogni volta per evitare il richiamo, dovrebbe bastare una piccola modifica allo script di cui ti ho accennato,

    un rischio, inizialmente lo script procederà abbastanza velocemente se ci sono tanti numeri, ma poi rallenterà sempre di più, potrebbe addirittura bloccare il player



    poi c'è un altro interrogativo, una volta che tutti i numeri possibili sono finiti che succede?

  5. #5
    ecco la soluzione, invece di controllare di volta in volta l'array creato, ne creo uno iniziale da cui cancello posizioni random estratte a caso di volta in volta.

    codice:
    sequenza = new Array();
    tutti = new Array();
    
    for (i=0; i<=50; i++){
    	tutti[i]=i;
    }
    
    for (e=0; e<=17; e++){
    	estratto=random(tutti.length);
    	//trace(estratto);
    	sequenza[e]=tutti[estratto];
    	tutti.splice (estratto,1);
    	trace(sequenza[e]);
    }

    ciao ciao

  6. #6
    Grande Eloderma! Funziona alla grande ed è elegantissimo e non impegna la CPU.

    Comunicazione crossmediale
    Documenti interattivi e multimediali in formato PDF.
    www.pdfplus.it
    www.primastudio.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    15

    Per and80

    ciao and84, volevo chiederti una cosa, nel tuo post fai riferimento ad un codice che carica file esterni a random escludendo dal "caso" il file appena caricato, puoi postarlo? di seguito scrivo il codice che sto usando io per caricare i file, puoi dargli un'occhiata? grazie tantissimo.

    tempo = getTimer();
    pausa = 0;
    function via() {
    onEnterFrame = function () {
    if (getTimer()-tempo>=pausa) {
    destino = random(6)+1;
    loadMovie("file"+destino+".swf", vuoto);
    tempo = getTimer();
    pausa = 20000;
    via();
    }
    };
    }
    via();

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    la mia funzioncina è
    codice:
    casuale = function () {
    	k = Math.floor(10*Math.random()+1);
    	if (k != _global.ricors) {
    		_global.ricors = k;
    		trace(k);
    	} else {
    		casuale();
    	}
    };
    ovviamente al posto del trace(k) si possono inserire tutte le azioni legate al numero random


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.