Après réflexion, la solution B me semble plus simple en terme d'UX et en terme technique
côté UX : devoir poser la carte remplaçante du joker sur le joker serait un nouveau geste à apprendre. Au contraire, bouger le joker comme toute carte et corriger la suite invalide est déjà une mécanique connue du joueur, autant la réutiliser
côté dev : il n'y a qu'une comparaison avec le tour précédent à faire + rajouter le message d'erreur spécifique
Nous n'avons pas implémenté une règle du jeu qui permet d'équilibrer l'utilisation des jokers :
En exemple : Suite route : 4, J, 6 On peut réutiliser le J dans une autre suite si on le remplace par un 5 rouge
2 possibilités en tête
A) Verrouiller la carte joker
Exemple de test :
Sortir un joker doit lever une erreur
Arrange Suite = 4 route, Joker, 6 Rouge
Act & assert: Sortir le joker -> lève une erreur
On peut remplacer un joker par la valeur qu'il occupe
Arrange
Suite = 4 route, Joker, 6 Rouge
Act
Remplacer le Joker par un 5 rouge
Assert
Suite === 4 route, 5 Rouge, 6 Rouge Joker tout seul
B) On peut bouger le joker librement