diff --git a/docs/diary/2024-04-26.md b/docs/diary/2024-04-26.md new file mode 100644 index 0000000..1bf52df --- /dev/null +++ b/docs/diary/2024-04-26.md @@ -0,0 +1,42 @@ +# 2024-04-26 + +Longtemps que je n'ai pas pris le temps d'écrire dans ce journal. Récapitulons la semaine passée, le 20 avril, j'ai mis +en production l'utilisation des données provenant de GTFS. Heureux d'être arrivé au bout de cette migration. + +Le 23, j'ai migré le projet de Javascript natif vers Vue.js, ce qui m'a permis au passage d'ajouter la fonctionnalité de +toggle les stations ajoutées. + +Enfin, le 25, j'ai ajouté le mode "Practice", qui permet de s'entraîner à trouver les stations avec un départ et une +arrivée différente à chaque fois. + +Aujourd'hui, je vais corriger un bug qui survient quand on désactive une station et qu'on l'ajoute à nouveau via le +champ de recherche. Ce qui en plus a pour conséquence d'inverser la coche de la liste des stations. + +Là-dedans, on peut voir deux choses : + +1. la recherche des stations ne retire plus les stations déjà ajoutées, c'était + plutôt voulu pour déléguer les stations ajoutées au composant d'en dessous. +2. la coche de la liste des stations est inversée, car les coches ne sont pas liées à l'état des stations. + +Ce qui ne me convient pas, c'est lorsque j'ajoute une station, la méthode `addStation` me retourne si le jeu est fini ou +non. Ensuite quand je désactive une station, je la retire de la liste des stations ajoutées de la partie, alors qu'il ne +faudrait pas, je pense. + +J'ai une méthode toggleStation, qui décide si la station est ajoutée ou retirée, mais je ne l'utilise pas pour ajouter +uniquement pour les checkbox. +Actuellement, la class Game, ne sait pas si une station est simplement désactivée, elle sait juste qu'elle n'est pas +ajoutée. + +D'ailleurs, le fait que la class n'ait pas l'information fait que ça biaise les résultats du jeu, où seulement les +stations ajoutées et encore actives sont prises en compte. Donc si l'utilisateur fait une erreur, il peut désactiver et +obtenir quand même le plus petit score. + +Il faut donc que la classe ait connaissance de l'état de la station. Dans un premier temps, je renomme la +Map `addedStops` en `currentState`, qui contient les stations ajoutées et leur état `{ isActive: true }`. + +J'ajoute ensuite un getter qui remplace l'ancienne variable `addedStops`. + +Maintenant, j'essaie d'utiliser un ref qui pointe vers l'instance de Game, mais cela ne fonctionne pas. Après quelques +essais infructueux, je décide de mettre à jour à chaque ajout ou toggle la ref `addedStops`. Je pense que je pourrais +utiliser les events, mais j'ai quelque chose de fonctionnel qui peut partir en production, c'est déjà une première +étape.