Je joue avec PyGame.
Maintenant, j'essaie d'implémenter un clone QIX .
J'ai ma boucle de jeu et je peux déplacer le joueur (curseur) sur l'écran.
Dans QIX, le mouvement du joueur laisse une trace (queue) sur l'écran, créant une polyligne.
Si la polyligne avec les limites de l'écran crée un polygone, la zone est remplie.
Comment puis-je accomplir ce comportement?
Comment stocker la queue en mémoire?
Comment détecter quand il construit une forme fermée qui doit être remplie?
Je n'ai pas besoin d'une solution de travail exacte, certains pointeurs, les noms d'algo seraient cool.
Au début, il n'y a que la bordure grise, où le joueur peut déplacer son curseur.
- Premier scénario:
L'utilisateur déplace son curseur du point A au point B, en traçant la multiligne rouge jusqu'au point C.À ce stade, en raison du franchissement de la frontière, le point A doit être automatiquement connecté au point C, créant un polygone, qui doit être rempli ( ce truc orange sur mon dessin). Remplir le polygone est sacrément simple dans PyGame, car je fournis la séquence de points, et PyGame se soucie du reste.
- Deuxième scénario:
L'utilisateur se déplace sur la bordure jusqu'au point D, d'où il trace une ligne vers le point E. Parce qu'il traverse la ligne du polygone précédent, et avec ses lignes et la bordure, un autre polygone peut être créé, il doit également être rempli. (le vert).
- Troisième scénario:
Le joueur se déplace plus loin sur le polygone (il peut se déplacer sur les lignes de polygones existantes) et trace une ligne du point G au point F. Là encore, en raison de la bordure et des lignes existantes, un autre polygone doit être rempli (le bleu) .