Γύρισμα Τροχού
Γράψτε τις επιλογές σας, γυρίστε τον τροχό
Κάθε γραμμή στο πλαίσιο γίνεται ένα κομμάτι. Πατήστε γύρισμα, ο τροχός στρέφεται και επιβραδύνει, και το κομμάτι κάτω από τον δείκτη κερδίζει.
Τίποτα δεν ανεβαίνει. Οι επιλογές σας ζουν στην καρτέλα του περιηγητή και εξαφανίζονται όταν την κλείσετε.
Ο νικητής επιλέγεται πριν κινηθεί ο τροχός
Αυτό έχει μεγαλύτερη σημασία απ’ όσο ακούγεται.
Ο προφανής τρόπος να φτιάξετε έναν τροχό είναι να του δώσετε μια τυχαία ώθηση, να αφήσετε την τριβή να τον επιβραδύνει, και να διαβάσετε ό,τι καταλήξει κάτω από τον δείκτη. Αυτή η προσέγγιση κάνει το αποτέλεσμα να εξαρτάται από τη στρογγυλοποίηση της τελικής γωνίας και από πόσα καρέ κίνησης κατάφερε να σχεδιάσει η συσκευή σας — ένα αργό κινητό και ένας γρήγορος υπολογιστής δεν θα ήταν εξίσου δίκαια.
Αυτός ο τροχός κάνει το αντίθετο. Κληρώνει έναν νικητή από το
crypto.getRandomValues() πρώτα, μετά υπολογίζει την ακριβή περιστροφή που φέρνει
εκείνο το κομμάτι κάτω από τον δείκτη και κάνει animation προς αυτήν. Το γύρισμα
είναι παρουσίαση· η κλήρωση έχει ήδη αποφασιστεί και είναι αποδεδειγμένα ομοιόμορφη.
Κάθε κομμάτι έχει επομένως ακριβώς την ίδια πιθανότητα, όσα κομμάτια κι αν υπάρχουν, όσο μεγάλες κι αν είναι οι ετικέτες τους, ή σε όποια συσκευή κι αν βρίσκεστε.
Αφαίρεση του νικητή, ή συνέχιση με ολόκληρο τον τροχό
Με το αφαίρεση νικητή ενεργό, κάθε γύρισμα αφαιρεί τη νικήτρια επιλογή από τον τροχό. Γυρίστε επανειλημμένα και παίρνετε μια σειρά: πρώτος, δεύτερος, τρίτος. Καλό για κλήρωση αρκετών βραβείων, ή για να αποφασίσετε σειρά παρουσίασης μπροστά σε μια αίθουσα.
Με αυτό απενεργοποιημένο, ο τροχός παραμένει ολόκληρος και η ίδια επιλογή μπορεί να κερδίσει δύο φορές — που είναι αυτό που θέλετε για το «πού θα φάμε απόψε».
Στάθμιση του τροχού επαναλαμβάνοντας μια επιλογή
Ο τροχός δίνει σε κάθε κομμάτι την ίδια πιθανότητα, οπότε ο τρόπος να ευνοήσετε μια επιλογή είναι να της δώσετε περισσότερα κομμάτια. Η καταχώρησή της δύο φορές διπλασιάζει το μερίδιό της.
| Επιλογές | Κομμάτια | Πιθανότητα για Πίτσα |
|---|---|---|
| Πίτσα, Σούσι, Τάκος | 3 | 33% |
| Πίτσα, Πίτσα, Σούσι, Τάκος | 4 | 50% |
| Πίτσα ×3, Σούσι, Τάκος | 5 | 60% |
Οι επαναλαμβανόμενες ετικέτες εμφανίζονται στον τροχό περισσότερες από μία φορά, κάτι που είναι ειλικρινές — όποιος παρακολουθεί μπορεί να μετρήσει τα κομμάτια και να δει τη στάθμιση αντί να σας εμπιστευτεί στα λόγια. Αυτή η ορατότητα είναι το νόημα ενός τροχού· μια κρυφή στάθμιση θα το ακύρωνε.
Για λεπτομερή βάρη που δεν χωράνε τακτοποιημένα σε κομμάτια, η γεννήτρια τυχαίων
αριθμών δέχεται αντ’ αυτού ρητά ζεύγη αριθμός:βάρος.
Πόσα κομμάτια παραμένουν ευανάγνωστα
Τα κομμάτια συρρικνώνονται καθώς αυξάνονται οι επιλογές, και οι ετικέτες σχεδιάζονται κατά μήκος της ακτίνας, οπότε υπάρχει ένα πρακτικό ταβάνι πολύ κάτω από οποιοδήποτε τεχνικό.
- Έως 12 — άνετο, οι ετικέτες διαβάζονται με μια ματιά
- 12 έως 20 — ευανάγνωστο, αλλά τα μακριά ονόματα αρχίζουν να στριμώχνονται
- 20 έως 30 — χρησιμοποιήσιμο μόνο για σύντομες ετικέτες
- Πάνω από 30 — ο τροχός εξακολουθεί να λειτουργεί και η κλήρωση παραμένει δίκαιη, αλλά κανείς δεν μπορεί να τον διαβάσει ενώ γυρίζει
Ετικέτες μεγαλύτερες από 18 χαρακτήρες περικόπτονται με αποσιωπητικά ώστε να παραμένουν μέσα στο κομμάτι τους. Αν η λίστα σας είναι αρκετά μεγάλη ώστε ο τροχός να γίνει δυσανάγνωστος, ο επιλογέας ονομάτων κάνει την ίδια δουλειά χωρίς το θέαμα.
Προσβασιμότητα και κίνηση
Ο τροχός σέβεται το prefers-reduced-motion. Αν το σύστημά σας ζητά μειωμένη
κίνηση, το animation του γυρίσματος παραλείπεται και ο νικητής εμφανίζεται
αμέσως. Το αποτέλεσμα είναι το ίδιο και στις δύο περιπτώσεις, επειδή η κλήρωση
ποτέ δεν εξαρτήθηκε από το animation.
Ο νικητής επίσης ανακοινώνεται σε μια ζωντανή περιοχή, ώστε οι αναγνώστες οθόνης να τον διαβάζουν χωρίς ο χρήστης να χρειάζεται να τον ψάξει.
Πού χρησιμοποιείται ένας τροχός επιλογής
- Λήψη απόφασης — γεύμα, ταινία, ποια δουλειά
- Ζωντανές μεταδόσεις και τάξεις — το γύρισμα είναι το νόημα· ο κόσμος το παρακολουθεί
- Κληρώσεις δώρων — μια ορατή κλήρωση φαίνεται πιο δίκαιη σε ένα κοινό από έναν αριθμό που εμφανίζεται
- Παγοθραύστες — ποιος απαντά στην επόμενη ερώτηση