Files
2026-11-11 01:51:55 +01:00

43 lines
2.7 KiB
Markdown

# end-portal-triangulation Specification
## Purpose
Permet de localiser le portail de l'End (stronghold) à partir de deux yeux de l'Ender lancés depuis deux endroits distincts, en calculant l'intersection des droites (lancé → chute) de chaque œil.
## Requirements
### Requirement: Calcul de la position du portail par intersection
Étant donné deux lancers d'œil de l'Ender, chacun défini par une position de lancé et une position de chute (coordonnées x et z, l'altitude étant ignorée), le système SHALL calculer l'intersection des deux droites (lancé → chute) et l'afficher comme position approximative du portail de l'End.
#### Scenario: Deux lancers exploitables
- **WHEN** l'utilisateur saisit les positions de lancé et de chute de deux yeux dont les trajectoires ne sont ni parallèles ni quasi parallèles
- **THEN** le système affiche les coordonnées (x, z) du point d'intersection, clairement identifiées comme position approximative du portail de l'End
#### Scenario: Coordonnées décimales
- **WHEN** l'utilisateur saisit des positions décimales (ex. relevées via l'écran F3)
- **THEN** le système les accepte telles quelles et le résultat est calculé avec ces valeurs
### Requirement: Saisie interactive des quatre positions
Le système SHALL demander à l'utilisateur, dans un flux interactif, les positions de lancé puis de chute de chaque œil, en n'acceptant que deux nombres par saisie (x et z, séparés par une espace ou une virgule).
#### Scenario: Saisie invalide
- **WHEN** l'utilisateur saisit une valeur non numérique, ou un nombre incorrect de valeurs
- **THEN** le système affiche un message d'erreur et redemande la même saisie, sans s'interrompre
#### Scenario: Lancer sans direction
- **WHEN** la position de chute saisie est confondue avec la position de lancé du même œil (aucune direction exploitable)
- **THEN** le système affiche un message expliquant que ce lancer est inexploitable et redemande une saisie utilisable pour ce lancer
### Requirement: Détection des cas non fiables
Le système SHALL vérifier la fiabilité de la triangulation avant d'afficher un résultat.
#### Scenario: Droites parallèles
- **WHEN** les deux droites (lancé → chute) sont parallèles ou quasi parallèles au point de rendre l'intersection inexploitable
- **THEN** le système affiche une erreur explicite et ne présente aucune coordonnée de portail
#### Scenario: Droites quasi parallèles
- **WHEN** l'angle entre les deux droites est faible (sous le seuil défini) sans être inexploitable
- **THEN** le système affiche les coordonnées du portail accompagnées d'un avertissement indiquant que la triangulation est peu précise, avec l'angle entre les droites