Durcir les invariants de déplacement et de placement de TacticalGrid #15

Closed
opened 2026-06-19 16:43:01 +00:00 by Reliodas · 0 comments
Owner

TacticalGrid autorise actuellement un déplacement diagonal entre deux murs formant un coin fermé. La méthode place() accepte aussi une case hors limites, un mur ou une case déjà occupée sans signaler l’échec. Ces comportements deviendront problématiques avec plusieurs participants et de nouvelles zones.

Critères d’acceptation :

  • un pas diagonal est interdit si l’une des cases orthogonales traversées bloque le mouvement ;
  • reachable_cells() et step_toward() partagent la même règle de franchissement ;
  • place() refuse explicitement hors-limites, mur et occupation incompatible ;
  • déplacer une créature ne corrompt jamais les tables position/occupation ;
  • tests GUT dédiés aux coins, occupations, déplacements et placements invalides.
TacticalGrid autorise actuellement un déplacement diagonal entre deux murs formant un coin fermé. La méthode place() accepte aussi une case hors limites, un mur ou une case déjà occupée sans signaler l’échec. Ces comportements deviendront problématiques avec plusieurs participants et de nouvelles zones. Critères d’acceptation : - un pas diagonal est interdit si l’une des cases orthogonales traversées bloque le mouvement ; - reachable_cells() et step_toward() partagent la même règle de franchissement ; - place() refuse explicitement hors-limites, mur et occupation incompatible ; - déplacer une créature ne corrompt jamais les tables position/occupation ; - tests GUT dédiés aux coins, occupations, déplacements et placements invalides.
Reliodas added this to the 0.15.0 milestone 2026-06-19 16:43:01 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: jeux/beaulieu-sur-brume#15
No description provided.