Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Swiss, double elimination and round robin tournaments

Aperta
#25 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, next.js, node.js

Direzione di ricerca

Start with backend/routes/tournaments.js to understand the existing single-elimination flow, then inspect the tournament bracket or standings view and the test setup. The issue calls for pure format modules under backend/tournaments/formats/*.js, exhaustive property tests, and mobile-friendly views. Done means all three formats meet the stated rules, tie-breaks are documented on the tournament page, and npm test and node scripts/check-boundary.js pass.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement help wanted

Tournaments only support single elimination (format = 'single_elimination' in backend/routes/tournaments.js). Half the field is out after one match, which is a poor experience for a community event where most players came to play.

Formats to add

  • Swiss: everyone plays a fixed number of rounds (default ceil(log2(n))), paired against players with the same score. Nobody is eliminated. Best for large open events.
  • Double elimination: a winners bracket and a losers bracket, with a grand final where the winners-bracket player needs one win and the losers-bracket player needs two (bracket reset).
  • Round robin: everyone plays everyone. Best for small groups of up to 8.

Rules that must hold

  • Swiss pairing never repeats an opponent when another valid pairing exists, and gives a bye to the lowest-ranked player without one when the count is odd. Use a proper pairing algorithm rather than greedy pairing, which fails late in the event.
  • Tie-breaks for Swiss and round robin: Buchholz score, then head to head, then total solve time. Document them on the tournament page.
  • No-shows lose the match after the existing check-in window. Repeated no-shows are dropped from later rounds.
  • Format logic lives in pure modules (backend/tournaments/formats/*.js) with no database access, so it can be tested exhaustively.

Definition of done

  • Property tests: for random field sizes from 2 to 128 and random results, every format finishes, every match has valid players, Swiss never repeats an avoidable pairing, and double elimination crowns exactly one winner.
  • The bracket or standings view renders each format clearly, including on a phone.
  • npm test and node scripts/check-boundary.js pass.
Lingua principale
JavaScript
Stelle
0
Fork
2
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sennaicodes/codearena

Tutte le issue di sennaicodes/codearena

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.