Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Λύσεις προβλημάτων για το δημοφιλές πρόγραμμα κατασκευής παρουσιάσεων στο διαδίκτυο.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Garakatsamol
Honorary Member
Δημοσιεύσεις: 919
Εγγραφή: 08 Μάιος 2007 00:27

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Garakatsamol » 28 Νοέμ 2007 19:37

Παρακάτω θα αναφέρω έναν τρόπο να παράγουμε τυχαίους αριθμούς, μη επαναλαμβανόμενους
Ο βασικός κώδικας που θα χρησιμοποιηθεί είναι ο παρακάτω:

Κώδικας: Επιλογή όλων

var nRandArray:Array = new Array();
for &#40;var i = 0; i<6; i++&#41; &#123;
	nRandArray&#91;i&#93; = i;
&#125;
for &#40;var j = 0; j<6; j++&#41; &#123;
	var rNum = random&#40;nRandArray.length&#41;;
	var irand = nRandArray&#91;rNum&#93;;
	trace&#40;irand&#41;
	nRandArray.splice&#40;rNum, 1&#41;;
&#125;
και εξηγώ:

Κώδικας: Επιλογή όλων

var nRandArray&#58;Array = new Array&#40;&#41;;
ορίζω έναν νέο πίνακα που θα φιλοξενήσει τις τιμές οι οποίες θέλω να εμφανίζονται τυχαία

Κώδικας: Επιλογή όλων

for &#40;var i = 0; i<6; i++&#41; &#123;
	nRandArray&#91;i&#93; = i;
&#125;
Δημιουργώ τον πίνακα που έχω ορίσει πιο πάνω. Στη συγκεκριμένη περίπτωση και για χάρη του παραδείγματος, οι τιμές που θα παίρνει θα είναι οι 0,1,...,5

Κώδικας: Επιλογή όλων

var rNum = random&#40;nRandArray.length&#41;;
Δημιουργώ μια μεταβλητή η οποία θα είναι μια τυχαία ακέραια τιμή από το 0 έως το μέγιστο αριθμό των στοιχείων του πίνακα

Κώδικας: Επιλογή όλων

var irand = nRandArray&#91;rNum&#93;;
trace&#40;irand&#41;
στη μεταβλητή irand ορίζω την τιμή που αντίστοιχεί στο τυχαίο στοιχείο του πίνακα, και στη συνέχεια την εμφανίζω σto Output box με την εντολή trace.

Κώδικας: Επιλογή όλων

nRandArray.splice&#40;rNum, 1&#41;;
Για να μην εμφανιστεί και πάλι το συγκεκριμένο στοιχείο του πίνακα το αφαιρώ από αυτόν χρησιμοποιώντας το splice με το οποίο αφαιρούμε το στοιχείο του πίνακα που χρησιμοποιήσαμε και δε θέλουμε να επαναληφθεί. To splice δέχεται 2 παραμέτρους, η πρώτη είναι το στοιχείο του πίνακα που θέλουμε να αφαιρέσουμε (στην περίπτωσή μας το τυχαίο στοιχείο που διαλέξαμε) και η δεύτερη το πόσα στοιχεία συνολικά θέλουμε να αφαιρεθούν (στην περίπτωσή μας 1).
Έτσι την επόμενη φορά που θα γίνει το for loop θα έχω ένα νέο πίνακα ο οποίος θα περιέχει ένα στοιχείο λιγότερο(θα λείπει αυτό που έχω χρησιμοποιήσει ήδη) και επομένως η αναζήτηση του τυχαίου αριθμού θα γίνει από αυτόν.

Σχόλια και ερωτήσεις ευπρόσδεκτα

Μια εφαρμογή των παραπάνω φαίνεται στο παράδειγμα, όπου 5 movie clips εμφανίζονται με τυχαία σειρά:
Συνημμένα

puzzle.swf [ 2.17 KiB | Προβλήθηκε 3929 φορές ]

puzzle.zip
(8.76 KiB) Μεταφορτώθηκε 598 φορές

Άβαταρ μέλους
Andreas_O
Honorary Member
Δημοσιεύσεις: 1621
Εγγραφή: 14 Σεπ 2007 17:22
Τοποθεσία: Aθήνα
Επικοινωνία:

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Andreas_O » 28 Νοέμ 2007 21:21

Τέλειο, αν το ολοκλήρωνες και σε captcha.. Καλό είναι που είναι σε flash. Flash vs Captcha δεν έχω δει ποτέ, για να λέμε την αλήθεια!
;]

Άβαταρ μέλους
Garakatsamol
Honorary Member
Δημοσιεύσεις: 919
Εγγραφή: 08 Μάιος 2007 00:27

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Garakatsamol » 28 Νοέμ 2007 21:24

Να σου πώ την αλήθεια πρώτη φορά ακούω το captcha :oops: :oops:

Άβαταρ μέλους
Andreas_O
Honorary Member
Δημοσιεύσεις: 1621
Εγγραφή: 14 Σεπ 2007 17:22
Τοποθεσία: Aθήνα
Επικοινωνία:

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Andreas_O » 28 Νοέμ 2007 21:26

Είναι αυτό που σε διάφορες φόρμες ζητάει να βάλεις ένα κωδικό ή να κάνεις μια πράξη, για να δει ότι είσαι άνθρωπος ;)
;]

Άβαταρ μέλους
Garakatsamol
Honorary Member
Δημοσιεύσεις: 919
Εγγραφή: 08 Μάιος 2007 00:27

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Garakatsamol » 28 Νοέμ 2007 21:35

ναι.. κατάλαβα..
Νομίζω όμως ότι το flash είναι αρκετά "διάτρητο" για να χρησιμοποιηθεί για αυτό το σκοπο.
Με flash decompiler καποιος ίσως να μπορούσε να το "σπάσει"

Μπορεί να λέω και βλακείες εντωμεταξύ :roll: :roll: :D :D

Άβαταρ μέλους
Andreas_O
Honorary Member
Δημοσιεύσεις: 1621
Εγγραφή: 14 Σεπ 2007 17:22
Τοποθεσία: Aθήνα
Επικοινωνία:

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Andreas_O » 28 Νοέμ 2007 21:38

Εγώ βασικά πρέπει να λέω βλακείες γιατί απ'ότι κατάλαβα, δεν είναι ο καλύτερος τρόπος το flash για captcha!
;]

Άβαταρ μέλους
Garakatsamol
Honorary Member
Δημοσιεύσεις: 919
Εγγραφή: 08 Μάιος 2007 00:27

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Garakatsamol » 28 Νοέμ 2007 21:40

μου άνοιξες την όρεξη τώρα...

Άβαταρ μέλους
Andreas_O
Honorary Member
Δημοσιεύσεις: 1621
Εγγραφή: 14 Σεπ 2007 17:22
Τοποθεσία: Aθήνα
Επικοινωνία:

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Andreas_O » 28 Νοέμ 2007 21:42

Για πιο πράγμα :P :question:
;]

Άβαταρ μέλους
Garakatsamol
Honorary Member
Δημοσιεύσεις: 919
Εγγραφή: 08 Μάιος 2007 00:27

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Garakatsamol » 28 Νοέμ 2007 21:44

για να κάνω ενα captcha σε flash :P

Άβαταρ μέλους
Andreas_O
Honorary Member
Δημοσιεύσεις: 1621
Εγγραφή: 14 Σεπ 2007 17:22
Τοποθεσία: Aθήνα
Επικοινωνία:

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Andreas_O » 28 Νοέμ 2007 21:46

Χαχ ;) Ψάξε tuts και κωδικες μες' στο freestuff.gr και ίσως καταφέρεις να το συνδιάσεις ;) Ή ίσως φτιάχνετε ολόκληρη "Εφαρμογή" σε flash, δλδ να έχεις και την φόρμα σε flash..
;]

Άβαταρ μέλους
Garakatsamol
Honorary Member
Δημοσιεύσεις: 919
Εγγραφή: 08 Μάιος 2007 00:27

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Garakatsamol » 28 Νοέμ 2007 21:48

Μόνο το μέρος της φόρμας που χρειάζεται για την ταυτοποίηση του human :idea:

Άβαταρ μέλους
Andreas_O
Honorary Member
Δημοσιεύσεις: 1621
Εγγραφή: 14 Σεπ 2007 17:22
Τοποθεσία: Aθήνα
Επικοινωνία:

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Andreas_O » 28 Νοέμ 2007 21:53

Ναι :question: Για την ακρίβεια τι εννοείς "Μόνο το μέρος της φόρμας που χρειάζεται για την ταυτοποίηση του human ??"
;]

Άβαταρ μέλους
Garakatsamol
Honorary Member
Δημοσιεύσεις: 919
Εγγραφή: 08 Μάιος 2007 00:27

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Garakatsamol » 28 Νοέμ 2007 21:56

αν πχ είναι ένα search τότε δε θα κάνω τη φόρμα για το search αλλα μόνο του captcha

Άβαταρ μέλους
Andreas_O
Honorary Member
Δημοσιεύσεις: 1621
Εγγραφή: 14 Σεπ 2007 17:22
Τοποθεσία: Aθήνα
Επικοινωνία:

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Andreas_O » 28 Νοέμ 2007 21:59

Aαααα, οκ ;) Αν καταφέρεις τπτ, στείλτο να το δούμε ;)
;]

Άβαταρ μέλους
Garakatsamol
Honorary Member
Δημοσιεύσεις: 919
Εγγραφή: 08 Μάιος 2007 00:27

Τυχαίοι μή επαναλαμβανόμενοι αριθμοί

Δημοσίευση από Garakatsamol » 29 Νοέμ 2007 12:35

Να ενα πρόχειρο που έκανα.
Φαντάζομαι ότι θα υπάρχουν κάποιες προδιαγραφές για κάτι τέτοιο αλλά δεν τις ξέρω (δεν έψαξα αρκετά :think: :P ). Αν κάποιος ξέρει κάτι ας το πει :D

Διαλέγει ανάμεσα από 6 εικόνες αλλά μπορούμε να βάλουμε όσες θέλουμε θεωρητικά (απλώς για μεγάλο αριθμό εικόνων καλύτερα θα ήταν να τις φορτώνει εξωτερικά, μια τη φορά).
Συνημμένα

captcha1.swf [ 65.74 KiB | Προβλήθηκε 3803 φορές ]

captcha1.zip
(63.78 KiB) Μεταφορτώθηκε 644 φορές

Απάντηση

Επιστροφή στο “Flash γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες