Roda da Sorte
Escreva as suas opções, gire a roda
Cada linha na caixa torna-se uma fatia. Prima girar, a roda roda e abranda, e a fatia sob o ponteiro ganha.
Nada é carregado. As suas entradas ficam no separador do navegador e desaparecem quando o fecha.
O vencedor é escolhido antes de a roda se mover
Isto importa mais do que parece.
A forma óbvia de construir uma roda é dar-lhe um impulso aleatório, deixar o atrito abrandá-la, e ler o que quer que fique sob o ponteiro. Essa abordagem faz o resultado depender do arredondamento do ângulo final e de quantos fotogramas de animação o seu dispositivo conseguiu desenhar — um telemóvel lento e um computador rápido não seriam igualmente justos.
Esta roda faz o contrário. Sorteia um vencedor a partir de
crypto.getRandomValues() primeiro, depois calcula a rotação exata que faz
essa fatia parar sob o ponteiro e anima até lá. O giro é apresentação; o
sorteio já está decidido e é comprovadamente uniforme.
Cada fatia tem, por isso, exatamente a mesma probabilidade, seja qual for o número de fatias, o comprimento das suas etiquetas, ou o dispositivo que está a usar.
Remover o vencedor, ou continuar a girar a roda completa
Com remover vencedor ativado, cada giro retira da roda a entrada vencedora. Gire repetidamente e obtém uma ordem: primeiro, segundo, terceiro. Bom para sortear vários prémios, ou para decidir a ordem de apresentação perante uma sala.
Com essa opção desativada, a roda mantém-se completa e a mesma opção pode ganhar duas vezes — o que é o que quer para “onde jantamos hoje”.
Ponderar a roda repetindo uma entrada
A roda dá a cada fatia a mesma probabilidade, por isso a forma de favorecer uma opção é dar-lhe mais fatias. Listá-la duas vezes duplica a sua parcela.
| Entradas | Fatias | Probabilidade para Pizza |
|---|---|---|
| Pizza, Sushi, Tacos | 3 | 33% |
| Pizza, Pizza, Sushi, Tacos | 4 | 50% |
| Pizza ×3, Sushi, Tacos | 5 | 60% |
As etiquetas duplicadas aparecem na roda mais do que uma vez, o que é honesto — quem estiver a assistir pode contar as fatias e ver a ponderação em vez de confiar apenas na sua palavra. Essa visibilidade é o propósito de uma roda; um peso escondido anularia isso.
Para pesos mais finos que não cabem de forma prática em fatias, o gerador de
números aleatórios aceita pares explícitos número:peso.
Quantas fatias se mantêm legíveis
As fatias encolhem à medida que as entradas aumentam, e as etiquetas são desenhadas ao longo do raio, por isso há um limite prático bem abaixo de qualquer limite técnico.
- Até 12 — confortável, as etiquetas leem-se num relance
- 12 a 20 — legível, mas nomes longos começam a ficar apertados
- 20 a 30 — utilizável apenas para etiquetas curtas
- Acima de 30 — a roda continua a funcionar e o sorteio continua a ser justo, mas ninguém consegue lê-la enquanto gira
Etiquetas com mais de 18 carateres são cortadas com reticências para se manterem dentro da sua fatia. Se a sua lista for suficientemente longa para tornar a roda ilegível, o escolhedor de nomes faz o mesmo trabalho sem o espetáculo.
Acessibilidade e movimento
A roda respeita prefers-reduced-motion. Se o seu sistema pedir movimento
reduzido, a animação do giro é omitida e o vencedor aparece imediatamente. O
resultado é idêntico em qualquer dos casos, porque o sorteio nunca dependeu
da animação.
O vencedor também é anunciado numa região ativa, para que os leitores de ecrã o leiam em voz alta sem o utilizador ter de o procurar.
Onde uma roda de escolha é usada
- Decidir — almoço, filme, qual tarefa
- Transmissões ao vivo e salas de aula — o giro é o objetivo; as pessoas assistem
- Sorteios — um sorteio visível parece mais justo a uma audiência do que um número a aparecer
- Quebra-gelos — quem responde à pergunta seguinte