Killer Sumdoku
Killer Sumdoku is a harder version of Sudoku.
Core trick
Rewards human-style candidate elimination and penalizes guessing, with puzzle difficulty adjusted from a rolling average of five games.
Tags
Description
Killer Sumdoku is a harder version of Sudoku.
Computers use brute force (recursive) Depth First Search to solve, but humans treat this as a very long horizon reasoning problem (a single puzzle can take many hours!).
If we can create an environment where playing the puzzle like a human is rewarded and brute-forcing/guessing is penalized, we have a very good env for long-horizon reasoning.
There is also room for self-play curriculum: if the model does good / bad in a running average of 5 games, we make the next puzzles harder / easier (increase puzzle difficulty number by how populated it is in the beginning as well as how big the grid is).
arnavinator/Killer_Sumdoku_OpenEnv_and_GRPO_Finetune★ 00 forksPythonCreated Mar 8, 2026 · last push Mar 8, 2026
README excerpt
---
title: Killer Sudoku Env Environment Server
emoji: 🎴
colorFrom: pink
colorTo: yellow
sdk: docker
pinned: false
app_port: 8000
base_path: /web
tags:
- openenv
---
# Killer Sudoku Environment
An OpenEnv environment for training LLMs on long-horizon reasoning via Killer Sudoku (Sumdoku) puzzles with adaptive difficulty progression.
## Overview
The agent solves Sumdoku puzzles by proposing candidate values, eliminating candidates through logical reasoning, and entering final answers. Difficulty automatically adapts based on rolling performance.
## Quick Start
### Direct (no Docker)
```python
import sys, os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from killer_sudoku_env.server.killer_sudoku_env_environment import KillerSudokuEnvironment
from killer_sudoku_env.models import KillerSudokuAction
env = KillerSudokuEnvironment()
obs = env.reset()
print(obs.board_display)
# Enter an answer
obs = env.step(KillerSudokuAction(action_type="enter_answer", x=0, y=0, value=5))
print(obs.action_result, obs.reward)
```
### Docker
```bash
docker build -t killer_sudoku_env-env:latest -f server/Dockerfile .
```
```python
from killer_sudoku_env import KillerSudokuEnv, KillerSudokuAction
env = KillerSudokuEnv.from_docker_image("killer_sudoku_env-env:latest")
result = env.reset()
print(result.observation.board_display)
```
## Action Space
Three action types via `KillerSudokuAction`:
| Action | Required Fields | Description |
|--------|----------------|------