Repository navigation
Description
🚀 Feature
Permitir que os jogadores escolham coletivamente qual linguagem será utilizada na próxima partida.
📖 Contexto
Atualmente a linguagem da corrida é definida sem qualquer participação dos jogadores.
Embora isso funcione, acaba reduzindo o sentimento de interação dentro da sala e faz com que algumas linguagens apareçam repetidamente.
A sala de espera é um ótimo momento para que todos possam participar dessa decisão.
💡 Proposta
Cada linguagem disponível deverá possuir um botão de votação.
Ao clicar em uma linguagem:
- o jogador registra seu voto;
- pode alterar seu voto até o início da partida;
- todos conseguem visualizar a quantidade de votos recebidos por cada linguagem.
Exemplo:
Python ●●●●●
JavaScript ●●
Rust ●
Go
COBOL ●●●
Lua ●
No início da partida:
- vence a linguagem mais votada;
- em caso de empate, realizar sorteio entre as empatadas.
🎯 Benefícios
- Mais interação entre os jogadores.
- Sensação de participação nas decisões da sala.
- Maior variedade nas partidas.
- Incentiva jogadores a experimentar novas linguagens.
🖥️ Considerações de interface
Os votos devem ser atualizados em tempo real para todos os jogadores conectados.
A quantidade de votos pode ser representada por:
- pequenos pontos;
- contador numérico;
- barra de progresso.
O importante é que seja simples e facilmente compreensível.
✅ Critérios de aceite
- Todas as linguagens podem receber votos.
- Cada jogador possui apenas um voto.
- O voto pode ser alterado até o início da partida.
- Todos visualizam os votos em tempo real.
- Em caso de empate ocorre sorteio automático.
- A linguagem vencedora é utilizada na próxima corrida.
🔮 Melhorias futuras
Essa funcionalidade pode evoluir para um sistema completo de votação da partida, permitindo que os jogadores escolham também:
- nível de dificuldade;
Activity
caioross commentedon Jul 26, 2026
Resolvida em PR #89 — #89 (solicitei quórum, §7.2 — novo evento realtime + muda como a linguagem da corrida é decidida).
ready, re-anunciado no join); tally conta só quem está presente. Nostart, o líder resolve o vencedor e grava emrooms.languagevia a actionsettingsexistente — fonte única de verdade, sem tocar a API de salas.pickVoteWinnercom rng injetável); sem votos → linguagem padrão.tallyVotes/pickVoteWinnerpuros, 8 testes novos.feat(multiplayer): votação de linguagem na sala de espera (#72)
merge + fix(#72): startRace só inicia se a linguagem vencedora foi gr…
feat(multiplayer): votação de linguagem na sala de espera (#72) (#89)