Add C++ as a playable language
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
Direzione di ricerca
Start with backend/arena/runner/harness.js, comparing pythonProgram and javascriptProgram, then inspect LANGUAGES, starterCode, and the relevant tests in backend/tests/. Implement a C++ driver and typed starter code for supported problem types, wire up the Judge0 language id, and validate correct and incorrect solutions across difficulty levels and types using a real Judge0. Done means npm test and node scripts/check-boundary.js pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Popular for competitive programming. C++ has no built-in JSON reader, so the driver needs a small parser for the input format above. std::pair / std::tuple cover the tuple types.
CodeArena runs player code in Python, JavaScript and TypeScript. Adding a language is self-contained and a great way to get into the codebase.
Where the code lives
backend/arena/runner/harness.js: one small driver per language. The driver reads{"tests":[{"args":[...]}]}as JSON on stdin, calls the player's function once per test, and prints the per-run marker line followed by a JSON array of{ ok, value }/{ ok, error }. Copy the shape ofpythonProgram/javascriptProgram. The marker nonce must stay per-run.LANGUAGESin the same file: add{ label, judge0Id }.starterCode(problem, language): typed starter code built fromproblem.function(name,params[].type,returns).backend/arena/runner/executors.js:localExecutoronly knowsnodeandpython3; add your compiler for local development if you like (it is never used in production).
Types the 45 problems use
integer, integer[], integer[][], number[], string, string[], boolean, and tuples: [integer, integer], [integer, integer][], [integer, integer, integer][], [string, integer][], [string, string, string][], [integer, integer, string].
Statically typed languages need a mapping for each of these. If a mixed tuple such as [string, integer] has no clean equivalent in your language, it is fine to leave that problem out for your language rather than force an awkward type: the loader supports per-problem languages via runnableLanguages.
Definition of done
- Driver plus typed starter code for every problem your language supports.
- Judge0 language id wired up (Judge0 CE: Java 62, C++ 54, Go 60; confirm on your Judge0 instance).
- Proof: correct solutions pass and wrong ones fail on a spread of problems (easy, medium, hard, and every type above) against a real Judge0 (
docker-compose.judge0.ymlin the repo root runs one locally). - Tests in
backend/tests/covering the driver output and starter code;npm teststays green. node scripts/check-boundary.jspasses.
- Lingua principale
- JavaScript
- Stelle
- 0
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di sennaicodes/codearena
-
Add issue and pull request templatesForse di nuovo libera @franciscorodr26 l’ha presa 17 giorni fa e non c’è nessuna pull request aperta. Apertadocumentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
sennaicodes/codearena#13 · 1 commento ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
sennaicodes/codearena#32 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
sennaicodes/codearena#31 ·
Tutte le issue di sennaicodes/codearena
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
flarum/framework#5301 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
AOSSIE-Org/BabyNest#284 ·
I maintainer di solito rispondono entro 1 giorno
-
status:untriaged
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
midnightntwrk/servicedesk#275 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
seek4science/seek#2762 ·
I maintainer di solito rispondono entro 5 giorni