samedi 25 janvier 2014

[Dart #004] Un peu de mouvements

Résumé de l'épisode précédent: Mon puzzle est toujours aussi moche et en plus il est désormais désordonné.


Nous allons maintenant coder les fonctions permettant au joueur de déplacer les cases. 

Haut, Bas, Gauche et Droite. Telles sont les mouvements possibles dans YphiPuzzle.

empty_position est initialisé à la position 15.

La caractéristique empty_position de mon puzzle permet de savoir à tout moment à quelle position se situe l'espace vide. Ainsi, je peux facilement déterminer quelle est l'action à réaliser à chaque mouvement. 


La fonction move_up par exemple vérifie que l'espace vide n'est pas sur la ligne basse du puzzle, auquel cas il est impossible de déplacer une case vers le haut. Autrement, il suffit d'échanger les positions de deux cases, ce qui se fait classiquement grâce à l'utilisation d'une variable temporaire, ici nommée box_to_move.

Un code similaire régie les fonctions move_down, move_left et move_right


Et voilà pour les mouvements! Les maths et les modulos, ça donne mal au crâne :D. La semaine prochaine, je coderais une dernière fonction permettant de dire si mon puzzle est ordonné.