最初の valid submission を作るためのガイド¶
更新日: 2026-06-17
このメモは、添付されていた beginner notebook の要点をこのリポジトリ向けに整理したもの。
目標は強いエージェントを作ることではなく、まず submission.tar.gz を正しく作って提出物の形を理解すること。
このコンペで提出するもの¶
一般的な Kaggle コンペのような submission.csv ではなく、エージェント bundle を提出する。
最小構成のイメージ:
main.py- 提出時のエージェント本体
deck.csv- 60 行の Card ID リスト
submission.tar.gz- 上のファイル群をまとめたアーカイブ
/kaggle/input と /kaggle/working¶
beginner notebook の説明では、役割分担はこうなっている。
/kaggle/input- 既存の配布物やサンプルを読む場所
cg-lib、カードデータ、参考 notebook、既存deck.csvなど/kaggle/working- Notebook 実行中に自分が作るファイルの出力先
deck.csv,main.py,submission.tar.gzなど
つまり、最初の 1 回では
/kaggle/inputの参照物を読む/kaggle/workingに提出用ファイルを作るsubmission.tar.gzを提出する
という流れになる。
deck.csv とは何か¶
deck.csv はただの 60 行ファイルで、各行に 1 枚ずつ Card ID を書く。
例:
673
673
674
...
カード名の CSV ではない。提出エージェントは通常、最初のデッキ選択フェーズでこの 60 枚の ID 配列を返す。
hardcode と deck.csv は別物¶
beginner notebook が強調している重要点:
- 60 枚のデッキ本体
- ルールベースロジックの中で使うカード定数
この 2 つは別。
たとえば
Mega_Lucario_ex = 678
のような定数が main.py にあっても、60 枚デッキ本体は別に deck.csv から読んでよい。
このリポジトリでの最小提出フロー¶
sample/ に提出 bundle 作成用の最小ファイルを置いている。
1. デッキを用意¶
まず sample/deck.csv を 60 枚の Card ID で作る。
2. 提出用 main.py を用意¶
sample/submission_main.py は最小の提出用エージェント。
obs.select is Noneのときにdeck.csvを返す- それ以外は合法手からランダムに選ぶ
強くはないが、提出物の形を理解するには十分。
3. bundle を作る¶
以下を実行すると sample/submission.tar.gz ができる。
uv run python sample/build_submission_bundle.py
4. Kaggle Notebook での見え方¶
Kaggle Notebook ではこの submission.tar.gz が /kaggle/working 側の Output に現れる想定。
そのファイルをそのまま提出に使う。
この repo での注意点¶
kaggle-environmentsは導入済みだが、cabtは macOS 上では同梱libcg.soの都合でそのまま動かないcg-libは PyPI パッケージではなく、Kaggle 側配布物として扱う前提- したがって bundle 作成はローカルでできるが、CABT 実行確認は Kaggle Notebook か Linux 環境が本命
次にやるとよいこと¶
- まずこの最小 bundle で提出形式を理解する
- 次に
deck.csvを差し替えながら提出を試す - その後でルールベース改善、自己対戦、MCTS に進む