Add Java as a playable language
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- java, javascript
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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 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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 0
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sennaicodes/codearena
-
Add issue and pull request templatesQuizá libre de nuevo @franciscorodr26 la tomó hace 21 días y no hay ningún pull request abierto. Abiertodocumentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
sennaicodes/codearena#13 · 1 comentario ·
-
enhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
sennaicodes/codearena#32 ·
-
enhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
sennaicodes/codearena#31 ·
Todos los issues de sennaicodes/codearena
Issues similares
-
step.duration reflects only the last retry attempt (HelperStep.run() overwrites startTime)Posiblemente ocupada @mirao la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
codeceptjs/CodeceptJS#5774 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Status: Unconfirmed
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
AllTheMods/ATM10-Aeronautics#151 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
feimacode/open-design-agent-kit#66 ·
Los mantenedores suelen responder en 1 día