Gravity Guy - игра, в которой единственным пользовательским вводом является одиночная клавиша, которая меняет направление гравитации. Учитывая художественный уровень ASCII, определите, возможно ли Gravity Guy достичь конца.
правила
- Начальное направление гравитации вниз .
- Первый столбец ввода всегда будет содержать только один
#
, над которым начинается Gravity Guy . - На каждой итерации он перемещается к персонажу прямо справа от него .
- Если его путь заблокирован, и он входит в
#
, игрок проигрывает . - После перемещения игрок может при желании переключать гравитацию вниз или вверх или вниз.
- Гравитационный парень затем падает на следующий
#
(в текущем направлении гравитации). - Если нет
#
возможности упасть, и он падает с сетки , игрок проигрывает . - Если Gravity Guy смещается с правой стороны входной сетки, игрок выигрывает .
пример
Если это была входная сетка:
###
# # #
###
Гравитационный парень начинал с x
этих позиций после каждой итерации. ^
= переключить гравитацию вверх и v
= переключить гравитацию вниз.
v ^ v
-------------------------------------------------------------
### | ### | ### | ### | ### | ###
x | | x | x | x |
# # | #x # | # # | # # | # # | # # x
### # | ### # | ### # | ### # | ### # | ### #
Как вы можете видеть, переключая гравитацию в это время, Gravity Guy достигает конца, поэтому этот вход вернет истинное значение.
Характеристики
- Входная сетка может иметь любой подходящий формат «сетки» (многострочная строка, дополненная пробелами, массив строк, массив символов и т. Д.).
- Если это возможно для игрока , чтобы выиграть уровень, выводить
truthy
значение. Если нет, выведитеfalsey
значение. - Ширина и высота сетки будут не более
50
символов. - Это код-гольф , пусть победит самый короткий код в байтах!
Тестовые случаи
(каждый случай, разделенный ----------
пробелами, также должен быть дополнен пробелами)
Правда
######### ######## ###### ######
# # # # # # #
### # # # # # # # # #
# ## # # ## # # # # # ##
# # # # # # # # # #######
# # # # # ### # #
# ## # ## # # # #
# # # # # #
# #################################### #
# #
#############################################
----------
###
----------
#####
####
----------
#####
# # #
# # #
#####
----------
############
###### ######
############
----------
### ###
# #
#### # ####
# #
# #
#
----------
######
#
##
#######
### #
# #
#####
----------
#####
# #
## #
#######
###
#
######
----------
###
# # #
###
----------
### ###
### ##
# #
#####
----------
#
# #
#
# # #
#
#
#
#
----------
##### ####
# # #
# # # ## #
# #
##### #### #
#
#########
----------
###########################
# # # # # # #
# # # # # # # # # #
# # # ######### ###########
# # # # # # # #
# # # ## ##### ### #
## # # # ## ###
# ##### #### ########### #
# # # # # ## #
# # ##### ### # # # # # #
# # # # ##
###########################
Ложь
###
#
####
----------
### ###
----------
#
### ###
#### ###
#
----------
### ###
# # #
#### # # ####
# #
# #
# #
#
----------
#######
# #
## #####
### ######
# #
#######
----------
###########################
# # # # # # # #
# # # # # # # # # #
# # # ######### ###########
# # # # # # # #
# # # ## ##### ### #
## # # # ## ###
# ##### #### ########### #
# # # # # ## #
# # ##### ### # # # # # #
# # # # ##
###########################
column
тип, я думаю, это будет нормально.
#
чтобы первый столбец находился в первом ряду?