Ce puzzle n'était pas trop difficile, je me suis retrouvé à créer beaucoup de fonctions et beaucoup d'instructions if et de boucles.
J'en suis arrivé au point aujourd'hui où j'étais un peu fatigué de la navigation sur grille 2D, d'où le retard dans la publication de ceci (je devais prendre un jour de congé).
Vous pouvez trouver ma solution ici comme toujours.
Encore une fois, rien de bien grave à discuter aujourd’hui. Les concepts principaux étaient :
a) parcourez la grille en parcourant les instructions pour déterminer dans quelle direction vous déplacer.
b) garder une trace de l'emplacement des boîtes et vérifier si notre prochain mouvement était un mur ou une boîte, s'il s'agissait d'une case à cocher, nous pouvons déplacer la boîte ou non.
Partie 2 :
a) appliquer la même logique, juste avec des paramètres différents pour pouvoir déplacer deux boîtes en même temps selon les instructions du puzzle.
Rechercher des boîtes : la fonction find_boxes identifie des paires de moitiés de boîte ([ et ]), représentant les côtés gauche et droit des boîtes, et mappe leurs relations pour une utilisation dans la logique de poussée de boîtes.
Déplacer le robot dans le deuxième entrepôt
La fonction move_robot_in_second_warehouse étend la logique du robot pour gérer les grilles modifiées. Il utilise une stratégie plus complexe pour pousser les boîtes ([]) et garantir qu'un espace suffisant est disponible. Il suit les relations entre les boîtes et les rassemble collectivement si nécessaire.
Partie 1 utilise la grille de base et la logique du robot pour calculer un résultat basé sur les positions des cases (O). Alors que la Partie 2 traite une grille modifiée, en appliquant des règles de mouvement avancées, et calcule un résultat similaire pour les cases ([])
Pas grand-chose de plus en réalité, juste une navigation en grille 2D avec une multitude de conditions et de mouvements. Du côté positif, je pense que mes connaissances en Python s'améliorent davantage en termes de syntaxe et de fonctions de bibliothèque utiles.
Comme toujours, n'hésitez pas à me contacter sur Twitter
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!