Résumé de l'épisode précédent: Mon puzzle ressemble à un truc tout moche en Command Line, mais au moins il est programmé comme un objet.
Passons au 2e besoin: La fonction de mélange aléatoire.
En gros, il s'agit de mélanger les cases du puzzle, i.e. de sortir une suite de 0 à 15 dans le désordre.
Le BASIC proposait déjà à l'époque une fonction random et il en est de même pour Dart.
Ma fonction de mélange va invoquer la Factory Random qui produira un nombre aléatoire entre 0 et 15 (fonction nextInt). J'utilise une List random_list pour les stocker et une autre List check_list pour gérer les doublons. Tant que ma List random_list n'est pas remplie, je boucle.
puzzle_in_1 est le puzzle à mélanger, puzzle_in_2 est un puzzle ordonné témoin |
Il s'agit ensuite de repositionner les String [01], ... [EV] dans l'ordre (ou plutôt le désordre) indiqué par la List random_list.
Je prends les cases du puzzle témoin et les positionne suivant random_list |
Finalement, c'était moins compliqué que je ne le pensais d'écrire cette partie. Dans mes souvenirs, cela m'avait pris un mois de recherche et coûté l'appel à un ami pour réussir à mélanger le puzzle.
C'est moche et en désordre maintenant... |
La semaine prochaine, on se donnera les moyens de le remettre dans l'ordre.
Aucun commentaire:
Enregistrer un commentaire