Sfida
Ti viene data una rappresentazione in arte ASCII di personaggi su un piano come input con qualsiasi metodo ragionevole. Questo conterrà solo:
[a-z]che rappresentano personaggi mobili. Ogni lettera apparirà sul tabellone al massimo una volta.#che rappresentano muri immobili.che rappresenta lo spazio vuoto
Per esempio:
abcdef.gh#..
.......ij.#.
#..#.......#
...#.#...###
.#.......#q#
.........###
Ti viene anche data una stringa che rappresenta i cambiamenti di gravità. Questo conterrà solo:
>che rappresenta un cambiamento alla gravità verso destra<che rappresenta un cambiamento alla gravità verso sinistra^rappresenta un cambiamento alla gravità ascendentevche rappresenta un cambiamento alla gravità verso il basso
Per esempio:
v>^
Il tuo programma deve simulare ogni cambiamento di gravità in sequenza fino a quando tutti i personaggi smettono di muoversi (colpiscono un muro o un altro personaggio). I personaggi che "cadono dal bordo della mappa" vengono rimossi in modo permanente e i personaggi possono "impilarsi" uno sopra l'altro.
In questo esempio, all'inizio c'è gravità verso il basso ( v), quindi c, e, g, h, i, e jcadere sul fondo della mappa. Tutti gli altri personaggi scorrono verso il basso fino a colpire un muro, lasciando la mappa in questo modo:
.........#..
a..d......#.
#..#.f.....#
.b.#.#...###
.#.......#q#
.........###
Quindi, passiamo alla gravità a destra ( >), che ci lascia con questo: nota come le apile accanto al d.
.........#..
........ad#.
#..#......f#
..b#.#...###
.#.......#q#
.........###
Infine, simuliamo la gravità verso l'alto ( ^), durante la quale la ae la bcaduta cadono dalla mappa.
.........#..
.........d#.
#..#......f#
...#.#...###
.#.......#q#
.........###
Il tuo compito è quello di produrre i rimanenti personaggi dopo i turni gravitazionali. Possono essere dati in qualsiasi ordine. Per questo esempio, è possibile generare qualsiasi permutazione didfq .
Casi test
Per la seguente mappa:
abcde
.....
##.##
v = abde
v> = <nothing>
Per la seguente mappa:
######
#....#
abcdef
#.gh..
######
> = <nothing>
< = gh
^> = bcde
v< = bghef