Add C++ as a playable language
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 52/100
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- JavaScript
- スター
- 0
- フォーク
- 2
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
sennaicodes/codearena のほかの issue
-
Add issue and pull request templates再び着手できるかも @franciscorodr26 が 20 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンdocumentation good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
sennaicodes/codearena#13 · コメント 1 件 ·
-
enhancement help wanted
難易度 5/5 1週間以上 初心者へのやさしさ 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
難易度 5/5 1週間以上 初心者へのやさしさ 45/100
sennaicodes/codearena#32 ·
-
enhancement help wanted
難易度 5/5 1週間以上 初心者へのやさしさ 38/100
sennaicodes/codearena#31 ·
sennaicodes/codearena の issue をすべて見る
似ている issue
-
Pills' meter dots fade on bright and deep pills対応中かも @wassim-azi が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
wassim-azi/agy-powerline#168 ·
メンテナーはふだん 1 日以内に返信
-
accounts bug
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信
-
area:docs effort:S impact:S kind:docs source:critic stage:ready
難易度 1/5 1〜3時間 初心者へのやさしさ 91/100
Jason-Vaughan/TangleClaw#2693 ·
メンテナーはふだん 1 日以内に返信
-
infrastructure P2 security
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
Energy flow: add an "Other" row so the consumers add up to the consumption total対応中かも @github-actions が今日担当しました。 オープンenhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
evcc-io/evcc#35512 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信