Gravity Guy to gra, w której jedynym wkładem użytkownika jest pojedynczy klawisz, który zmienia kierunek grawitacji. Biorąc pod uwagę poziom sztuki ASCII, ustal, czy Gravity Guy może dojść do końca.
Zasady
- Początkowy kierunek grawitacji jest w dół .
- Pierwsza kolumna danych wejściowych zawsze będzie zawierać tylko jedną
#, od której zaczyna się Gravity Guy . - W każdej iteracji przechodzi do postaci bezpośrednio po jego prawej stronie .
- Jeśli jego ścieżka jest zablokowana, a on porusza się do
#, gracz przegrywa . - Po przeprowadzce gracz może opcjonalnie przełączać grawitację z dołu na górę lub z góry na dół.
- Gravity Guy następnie przechodzi do następnego
#(w bieżącym kierunku grawitacji). - Jeśli nie ma
#na co wpadać, a on spadnie z pola , gracz przegrywa . - Jeśli Gravity Guy zejdzie z prawej strony siatki wejściowej, gracz wygrywa .
Przykład
Jeśli to była siatka wejściowa:
###
# # #
###
Gravity Guy zaczynałby xsię w tych pozycjach po każdej iteracji. ^= przełączyć grawitację w górę i v= przełączyć grawitację w dół.
v ^ v
-------------------------------------------------------------
### | ### | ### | ### | ### | ###
x | | x | x | x |
# # | #x # | # # | # # | # # | # # x
### # | ### # | ### # | ### # | ### # | ### #
Jak widać, przełączając grawitację w tych czasach Gravity Guy osiąga koniec, więc to wejście zwróci prawdziwą wartość.
Dane techniczne
- Siatka wejściowa może być w dowolnym odpowiednim formacie „siatka” (ciąg wielowierszowy wypełniony spacjami, tablica ciągów linii, tablica znaków itp.).
- Jeśli jest to możliwe dla gracza, aby wygrać poziomie, wyjście na
truthywartość. Jeśli nie, wpiszfalseywartość. - Szerokość i wysokość siatki będą
50najwyżej znakami. - To kod-golf , niech wygra najkrótszy kod w bajtach!
Przypadki testowe
(każdy przypadek oddzielony ----------dowolnymi pustymi liniami należy również uzupełnić spacjami)
Prawdziwe
######### ######## ###### ######
# # # # # # #
### # # # # # # # # #
# ## # # ## # # # # # ##
# # # # # # # # # #######
# # # # # ### # #
# ## # ## # # # #
# # # # # #
# #################################### #
# #
#############################################
----------
###
----------
#####
####
----------
#####
# # #
# # #
#####
----------
############
###### ######
############
----------
### ###
# #
#### # ####
# #
# #
#
----------
######
#
##
#######
### #
# #
#####
----------
#####
# #
## #
#######
###
#
######
----------
###
# # #
###
----------
### ###
### ##
# #
#####
----------
#
# #
#
# # #
#
#
#
#
----------
##### ####
# # #
# # # ## #
# #
##### #### #
#
#########
----------
###########################
# # # # # # #
# # # # # # # # # #
# # # ######### ###########
# # # # # # # #
# # # ## ##### ### #
## # # # ## ###
# ##### #### ########### #
# # # # # ## #
# # ##### ### # # # # # #
# # # # ##
###########################
Fałszywe
###
#
####
----------
### ###
----------
#
### ###
#### ###
#
----------
### ###
# # #
#### # # ####
# #
# #
# #
#
----------
#######
# #
## #####
### ######
# #
#######
----------
###########################
# # # # # # # #
# # # # # # # # # #
# # # ######### ###########
# # # # # # # #
# # # ## ##### ### #
## # # # ## ###
# ##### #### ########### #
# # # # # ## #
# # ##### ### # # # # # #
# # # # ##
###########################
columntyp, to byłoby OK do użycia.
#pierwsza kolumna znajdowała się w pierwszym rzędzie?