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

Add Java as a playable language

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

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
55/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
java, javascript
Ambito
backend, testing

Direzione di ricerca

Start with backend/arena/runner/harness.js, reading pythonProgram and javascriptProgram, LANGUAGES, and starterCode; then inspect backend/tests/ for existing runner tests. Add the Java driver, supported typed starter code, and Judge0 id, then verify representative correct and incorrect solutions against Judge0, run npm test, and run node scripts/check-boundary.js.

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

Descrizione

help wanted

Most requested for interview-style practice. Java has no tuple type, so problems with mixed tuples may be left out for Java (see below).

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 of pythonProgram / javascriptProgram. The marker nonce must stay per-run.
  • LANGUAGES in the same file: add { label, judge0Id }.
  • starterCode(problem, language): typed starter code built from problem.function (name, params[].type, returns).
  • backend/arena/runner/executors.js: localExecutor only knows node and python3; 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.yml in the repo root runs one locally).
  • Tests in backend/tests/ covering the driver output and starter code; npm test stays green.
  • node scripts/check-boundary.js passes.
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.