Un relleno de caballero es un relleno de inundación utilizando la conectividad de la pieza de ajedrez de caballero. Específicamente:
1 1
1 1
0
1 1
1 1
(0 es el punto inicial, 1 muestra las celdas conectadas)
Desafío
Dada una cuadrícula 2D de espacios y paredes, y una ubicación inicial, realiza un relleno de caballero en la cuadrícula. El código más corto gana.
Reglas
Puede tomar entradas y producir salidas en cualquier formato que desee (imagen, cadena, matriz, lo que sea). Puede tomar la ubicación inicial como parte de la cuadrícula de entrada o como una coordenada separada. A los fines de esta explicación, se utilizará el siguiente formato:
######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ########
La salida es una copia de la cuadrícula de entrada con el resultado de relleno de caballero agregado
Su relleno no debe estar en el mismo "color" que el espacio o las paredes, pero puede ser el mismo que el marcador de ubicación inicial. Por ejemplo, dada la imagen de arriba, una salida válida sería:
######## # = wall ######## @ = fill (could also have been x) ## @ @## ## @ @## ######## ##@ @ ## ######## ########
Puede suponer que la cuadrícula de entrada siempre contendrá una pared de 2 celdas en todos los lados
- Puede suponer que la ubicación inicial nunca estará dentro de una pared
- Puede suponer que la cuadrícula nunca será mayor que 1000x1000
- Los builtins están bien
- El código más corto (en bytes) gana
Casos de prueba
En todos los casos de prueba, #
denota un muro, denota un espacio vacío y
x
denota la ubicación inicial del relleno. @
denota el relleno de salida.
Input 1:
########
########
## x ##
## ##
########
## ##
########
########
Output 1:
########
########
## @ @##
## @ @##
########
##@ @ ##
########
########
Input 2:
############
############
## ## x##
## ## ##
##### ##
## ##
############
############
Output 2:
############
############
## ##@@@@@##
##@##@@@@@##
#####@@@@@##
## @@@@@@@##
############
############
Input 3:
####################
####################
## ## ##
## ## ##
## ## ######## ##
## ## ######## ##
## ## ## ## ##
## ## ## ## ##
## ## ## ## ##
## ## ## ## ##
## ## ######## ##
## ## ######## ##
## ## ## ##
## ## x## ##
## ############ ##
## ############ ##
## ##
## ##
####################
####################
Output 3:
####################
####################
##@@##@@@@@@@@@@@@##
##@@##@@@@@@@@@@@@##
##@@##@@########@@##
##@@##@@########@@##
##@@##@@## ##@@##
##@@##@@## ##@@##
##@@##@@## ##@@##
##@@##@@## ##@@##
##@@##@@########@@##
##@@##@@########@@##
##@@##@@@@@@@@##@@##
##@@##@@@@@@@@##@@##
##@@############@@##
##@@############@@##
##@@@@@@@@@@@@@@@@##
##@@@@@@@@@@@@@@@@##
####################
####################
Input 4:
################
################
## ###
## x ###
## ####### ###
## ####### ###
## ## ## ###
## ## ## ###
## ## ## ###
## ######## ##
## ######## ##
## ## ##
## ## ##
################
################
Output 4:
################
################
## @ @ ###
## @ @ @ ###
## ####### ###
##@ ####### @###
## ## ## ###
## @## ##@ ###
## ## ## ###
##@ ########@ ##
## ######## ##
## @ @ ## @##
## @ @## ##
################
################
Input 5:
##############
##############
## ###
## ###
## ###
## ### ###
## #x# ###
## ### ###
## ###
## ###
## ###
##############
##############
Output 5:
##############
##############
##@@@@@@@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##@@@###@@@###
##@@@#@#@@@###
##@@@###@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##############
##############