Défi
Vous êtes donné une représentation ASCII-art de caractères sur un plan comme entrée par toute méthode raisonnable. Il ne contiendra que:
[a-z]représentant des personnages mobiles. Chaque lettre apparaîtra au tableau au plus une fois.#représentant des murs inamovibles.représentant un espace vide
Par exemple:
abcdef.gh#..
.......ij.#.
#..#.......#
...#.#...###
.#.......#q#
.........###
Vous recevez également une chaîne représentant les changements de gravité. Il ne contiendra que:
>représentant un changement de gravité vers la droite<représentant un changement de gravité vers la gauche^représentant un changement de gravité vers le hautvreprésentant un changement de gravité vers le bas
Par exemple:
v>^
Votre programme doit simuler chaque changement de gravité de manière séquentielle jusqu'à ce que tous les personnages cessent de bouger (ils heurtent un mur ou un autre personnage). Les personnages qui "tombent du bord de la carte" sont définitivement supprimés et les personnages peuvent "s'empiler" les uns sur les autres.
Dans cet exemple, au début il y a la gravité vers le bas ( v), donc c, e, g, h, iet jtomber en bas de la carte. Tous les autres personnages glissent vers le bas jusqu'à atteindre un mur, laissant la carte comme ceci:
.........#..
a..d......#.
#..#.f.....#
.b.#.#...###
.#.......#q#
.........###
Ensuite, nous passons à la gravité vers la droite ( >), ce qui nous laisse avec ceci: Notez comment les apiles à côté du d.
.........#..
........ad#.
#..#......f#
..b#.#...###
.#.......#q#
.........###
Enfin, nous simulons la gravité vers le haut ( ^), pendant laquelle le aet le btombent de la carte.
.........#..
.........d#.
#..#......f#
...#.#...###
.#.......#q#
.........###
Votre tâche consiste à générer les caractères restants après les décalages gravitationnels. Ils peuvent être donnés dans n'importe quel ordre. Pour cet exemple, vous pouvez générer n'importe quelle permutation dedfq .
Cas de test
Pour la carte suivante:
abcde
.....
##.##
v = abde
v> = <nothing>
Pour la carte suivante:
######
#....#
abcdef
#.gh..
######
> = <nothing>
< = gh
^> = bcde
v< = bghef