Metadata-Version: 2.4
Name: i151-arena-sdk
Version: 0.2.0
Summary: SDK étudiant pour la compétition IA i151
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: i151-engine>=0.1.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Provides-Extra: ml
Requires-Dist: numpy>=1.26; extra == "ml"

# i151-arena-sdk — SDK étudiant

Package installable pour développer et tester un bot i151 en local, **sans cloner le dépôt complet**.

## Installation

```bash
python3 -m venv .venv && source .venv/bin/activate
pip install i151-arena-sdk
```

En développement (monorepo) :

```bash
cd arena/engine && pip install -e ".[dev]"
cd ../sdk && pip install -e ".[dev]"
```

## Démarrage rapide

```bash
arena init mon-bot
cd mon-bot
pip install -r requirements.txt
arena test bot.py
arena match bot.py --vs random --seed 42
```

## Exemples publics (inclus dans le package)

| Alias CLI | Description |
|-----------|-------------|
| `starter` | Première action légale |
| `basic` | Heuristique gloutonne |

```bash
arena test starter
arena match basic --vs random --seed 42
```

Les bots avancés (MinMax, MCTS, RL, PPO) restent dans le monorepo pour le développement interne et ne sont **pas** publiés sur PyPI.

## Interface bot

```python
from arena_sdk import PlayerView, Action

def decide(view: PlayerView, legal_actions: list[Action], time_left_ms: int) -> Action:
    return legal_actions[0]
```

## CLI

```bash
arena init mon-bot              # créer un projet
arena test bot.py               # smoke test vs random
arena match bot.py --vs random  # match complet
arena match bot.py --vs basic   # affronter l'exemple glouton
arena match bot.py --replay-out replay.json
```

## ML (local)

```python
from arena_sdk.features import encode_view, action_from_index
```

Voir [`../docs/TUTORIAL.md`](../docs/TUTORIAL.md) pour le guide complet.

## Dépendance

Ce package réexporte `PlayerView`, `Action` et `play_match` depuis `i151-engine` (installé automatiquement).

## Publication PyPI

```bash
cd arena/engine && python -m build && twine upload dist/*
cd ../sdk && python -m build && twine upload dist/*
```

Publier `i151-engine` avant `i151-arena-sdk`.
