MESA DE CONTROLO DA RODA / MAPA DE ESTADO

Defina entradas e leia o estado visível da roda

Este painel de decisão relaciona o editor atual da roda: limites de entradas, ordem de paleta, definições de giro, cálculo de rotação, histórico, estado de eliminação e controlos do navegador.

Abrir roleta

Trilho de entradas e ordem de paleta

No início, o editor cria quatro entradas predefinidas localizadas. Um valor guardado pickerWheelOptions só é processado como JSON quando é um array com pelo menos duas entradas; as entradas precisam de campos string id e text, são limitadas a 30 e os rótulos são cortados a 80 caracteres. Um conjunto anterior de exatamente quatro rótulos ingleses predefinidos é substituído por rótulos localizados. Este registo não atribui resultado de recuperação a valores guardados demasiado longos ou inválidos.

01 · ENTRADA — Adicionar, remover, ordenar

Adicionar remove espaços e corta texto a 80 caracteres, até 30 entradas. Remover para em duas entradas. Ordenar usa text.localeCompare; Shuffle é Fisher–Yates com Math.random() e targetIndex = Math.floor(Math.random() * (index + 1)).

02 · PALETA — Oito conjuntos de cores

Os temas visíveis são vibrant, pastel, sunset, forest, ocean, candy, earth e neon. As cores repetem-se ciclicamente pela ordem atual de entradas.

03 · MUDANÇA — Tema reatribui ordem visível

Mudar o tema volta a atribuir as cores desse tema pela ordem atual de entradas. Ordenar e misturar também atribuem cores a partir dessa ordem.

Registo de paletas

Um tema altera as cores de segmento associadas à sequência atual; não acrescenta outro estado de entrada.

  • vibrant
  • pastel
  • sunset
  • forest
  • ocean
  • candy
  • earth
  • neon

Painel de cálculo de giro

A roda precisa de pelo menos duas entradas. Um giro parte da rotação atual e usa os valores visíveis. Durante a duração calculada, o editor emprega uma curva ease-out cubic.

01 · DEFINIÇÕES — Velocidade e duração

spinSpeed começa em 5 e aceita 1–10. spinDuration começa em 5 segundos e aceita 2–15 segundos.

02 · TEMPO — Expressão de duração

actualDuration = spinDuration * 1000 / (spinSpeed / 5).

03 · ROTAÇÃO — Intervalo de voltas

As voltas vão de 5 + spinSpeed a 8 + spinSpeed, usando Math.random() entre esses limites; a rotação total é rotations * 2 * Math.PI.

04 · SEGMENTO — Derivação do ponteiro

No fim, normalizedRotation = newRotation % (2 * Math.PI), pointerAngle = (2 * Math.PI - normalizedRotation) % (2 * Math.PI), e o índice de segmento é Math.floor(pointerAngle / anglePerOption).

Registo de saída, histórico e eliminação

Quando a animação termina, é mostrado o rótulo da entrada selecionada, o total de giros aumenta e o resultado entra no início do histórico. O ecrã conserva no máximo 10 registos de histórico.

01 · HISTÓRICO — Inserção no início, limite 10

O caminho final usa [newResult, ...previous].slice(0, 10). Cada resultado contém o texto de entrada mostrado e uma marca temporal.

02 · ELIMINAÇÃO — Cópia e remoção condicional

Ativar Elimination Mode copia as entradas atuais. Após um resultado, a sua entrada só é removida quando restam pelo menos duas; caso contrário a lista é mantida.

03 · REINICIAR — Reinicia rotação e rótulo

Reset devolve a rotação a 0 e limpa o rótulo mostrado. Com Elimination Mode ativo e entradas originais, Reset restaura essa lista copiada.

Registo de chaves e âmbito dos controlos

O editor escreve o seu estado mostrado sob chaves localStorage nomeadas. O histórico só é escrito enquanto não estiver vazio; Clear history esvazia o estado e remove a sua chave.

OPÇÕES — pickerWheelOptions

O estado das entradas é escrito como JSON após mudanças de opção. As outras preferências escritas são pickerWheelSound, pickerWheelEliminationMode, pickerWheelColorTheme, pickerWheelSpinSpeed, pickerWheelSpinDuration e pickerWheelTotalSpins.

HISTÓRICO — pickerWheelHistory

Um histórico não vazio é escrito sob pickerWheelHistory. Clear history remove pickerWheelHistory depois de definir o histórico mostrado como lista vazia.

ENTRADA / VISTA — Teclado, som, ecrã inteiro

O botão e o canvas podem iniciar um giro. Enter ou Espaço podem fazê-lo se o elemento ativo não for um INPUT. A inicialização de AudioContext é tentada após o primeiro document click e o som tem um interruptor. Ecrã inteiro usa uma API nativa quando disponível e, caso contrário, uma vista CSS de recurso, incluindo uma ramificação de deteção de iOS.

Notas de âmbito

  • Este painel descreve caminhos e fórmulas atuais do editor, não uma avaliação de seleção.
  • O índice de seleção é derivado da rotação final normalizada e da largura de segmento sob o ponteiro.
  • O editor usa Math.random() nos caminhos de mistura e giro; esta página não caracteriza essas saídas.
  • Valores guardados, inicialização de som e ecrã inteiro são descritos como caminhos de código, não como expectativas gerais de plataforma.

Continuar com controlos próximos

Cada ferramenta ligada tem a sua própria interface e caminho de estado.

  • Jogar moeda

    Abra a interface separada de moeda com duas faces.

  • Sudoku

    Abra um puzzle de grelha com controlos próprios.

  • Puzzle de palavras

    Abra a interface de puzzle baseada em palavras.

Perguntas sobre a mesa de controlo

Que entradas estão presentes no início?

O editor começa com quatro entradas predefinidas localizadas. pickerWheelOptions só é usado após processamento JSON como array com pelo menos duas entradas; entradas válidas precisam de id e text string, no máximo 30 são retidas e rótulos são cortados a 80 caracteres.

Que temas de cor são visíveis?

Os nomes visíveis são vibrant, pastel, sunset, forest, ocean, candy, earth e neon. As cores são atribuídas ciclicamente pela ordem atual de entradas, também após mudar tema.

Como são calculadas duração e rotação?

spinSpeed é 1–10 e spinDuration é 2–15 segundos. actualDuration = spinDuration * 1000 / (spinSpeed / 5). A rotação usa um valor entre 5 + spinSpeed e 8 + spinSpeed, depois uma curva ease-out cubic.

Como é derivada a entrada mostrada?

No fim, o código normaliza com newRotation % (2 * Math.PI), deriva pointerAngle como (2 * Math.PI - normalizedRotation) % (2 * Math.PI), e toma Math.floor(pointerAngle / anglePerOption).

O que fazem histórico e Elimination Mode?

Um resultado é acrescentado no início e o histórico é limitado a 10. Ativar Elimination Mode copia entradas atuais; após um resultado remove essa entrada só se restarem pelo menos duas. Reset restaura as copiadas quando o modo está ativo.

Que chaves são guardadas?

O editor escreve pickerWheelOptions, pickerWheelHistory quando não vazio, pickerWheelSound, pickerWheelEliminationMode, pickerWheelColorTheme, pickerWheelSpinSpeed, pickerWheelSpinDuration e pickerWheelTotalSpins. Clear history remove pickerWheelHistory.

Abrir os controlos da roleta

Defina entradas, reveja paleta e definições e use os controlos visíveis da roda.

Abrir roleta