initial commit

This commit is contained in:
2026-11-11 01:51:55 +01:00
commit 2803cebeff
31 changed files with 3510 additions and 0 deletions
@@ -0,0 +1,27 @@
# Proposal
## Why
En jeu, localiser le portail de l'End (dans un stronghold) en suivant des yeux de l'Ender à l'écran F3 est fastidieux et imprécis à faire de tête. Deux lancers d'œil de l'Ender réalisés à deux endroits distincts suffisent pourtant à trianguler la position du stronghold : chaque œil vole vers le stronghold, donc la droite (lancé → chute) passe par lui, et l'intersection des deux droites donne sa position. Ce petit programme fait ce calcul à la place du joueur.
## What Changes
- Nouveau script Python interactif unique, sans aucune dépendance externe (stdlib uniquement) : il demande les positions de **lancé** et de **chute** de deux yeux de l'Ender (coordonnées x, z relevées en jeu), puis affiche les coordonnées approximatives du portail de l'End.
- Garde-fous de fiabilité : message d'erreur explicite si les deux droites sont parallèles (aucune intersection exploitable) ou si un lancer n'a pas de direction (chute ≈ lancé) ; avertissement si les droites sont quasi parallèles (angle faible → résultat peu fiable).
- Entrées tolérantes : décimales acceptées (F3), séparateur espace ou virgule, re-demande en cas de saisie invalide plutôt que de planter.
- Tests unitaires (stdlib `unittest`) couvrant la géométrie (intersection, cas parallèles) et l'analyse des saisies.
- README court : mode d'emploi et rappel de la méthode de relevé des coordonnées en jeu.
## Capabilities
### New Capabilities
- `end-portal-triangulation` : calcul de la position approximative du portail de l'End (stronghold) par intersection des trajectoires de deux yeux de l'Ender, à partir des positions de lancé et de chute de chaque œil.
### Modified Capabilities
- Néant (dépôt vierge, aucune spec existante).
## Impact
- Créations : `end_finder.py` (script unique à la racine), `tests/test_triangulation.py`, `README.md`.
- Aucune dépendance externe, aucun outil de packaging (pas de `pyproject.toml` — YAGNI, lançable par `python end_finder.py`).
- Aucun code existant impacté (dépôt vide hors OpenSpec).