Solo estaba jugando el juego de mesa ¡Lo siento! con algunas personas, y me di cuenta de que podía basarme en algunos desafíos interesantes. Este es bastante simple.
Su tarea es simplemente generar una versión ascii-art de un tablero lamentable, colocando las piezas donde se lo pido.
Especificaciones
Primero, aquí hay una imagen de un verdadero ¡Lo siento! tablero para referencia:
El tablero vacío se ve así:
# > - - o # # # # > - - - o # #
# # S v
o # H # # # # # |
| # |
| # S o
| # #
^ H #
# #
# #
# H v
# # |
o S # |
| # |
| # # # # # H # o
^ S # #
# # o - - - < # # # # o - - < #
Observe algunas características.
- Los
#
's son cuadrados vacíos. - Las
S
'syH
' son Start y Home respectivamente. - Los
>v<^
's son el comienzo de las diapositivas, dependiendo de la dirección que miren. - Los
|
'sy-
' son los medios de las diapositivas, dependiendo de si son horizontales o verticales. - Los
o
's son el final de las diapositivas. - Cada columna está separada por una columna de espacios para que parezca más cuadrada.
Ahora esto es lo que tienes que hacer:
- Su entrada es una lista de coordenadas de varias piezas que se han colocado en el tablero.
- Las coordenadas comienzan en
0
el cuadrado fuera del Inicio del color inferior (amarillo en la imagen) y aumentan en uno por cuadrado en el sentido de las agujas del reloj. - Después de estos 60 cuadrados, las zonas seguras tienen las siguientes y últimas 20 coordenadas, comenzando por la que está en la parte inferior (que obtiene 60-64), y luego en sentido horario.
- Tendrás que colocar la (
*
s) estrella ( s) en la coordenada correcta, reemplazando el personaje debajo de todos los jugadores. - Además, si alguno de los jugadores está en el cuadro inicial de un control deslizante, muévalo al final del control deslizante antes de colocarlo.
- Puede suponer que no habrá colisiones, antes o después de resolver los controles deslizantes.
- No necesita preocuparse por el inicio o el inicio.
- Puede estar indexado en 1 si lo desea, pero los casos de prueba están indexados en 0.
Casos de prueba
[0, 20] ->
# > - - o # # # # > - - - o # #
# # S v
* # H # # # # # |
| # |
| # S o
| # #
^ H #
# #
# #
# H v
# # |
o S # |
| # |
| # # # # # H # o
^ S # #
# # o - - - < # # # # * - - < #
[2, 7, 66] ->
# > - - o # # # # > - - - o # #
# # S v
o # H # # # # # |
| # |
| # S o
| # #
^ H #
# #
# #
# H v
# # |
o S # |
| # |
| # * # # # H # o
^ S # #
# # o - * - < # # * # o - - < #
0, 5
y el segundo podría ser2, 60, 37
).Respuestas:
Python 2, 476 bytes
Solución corta de 3 líneas ( Pruébelo en línea )
One-liner en 534 ( Pruébelo en línea ):
Asumo índices de zona segura de esta manera:
Explicación (las líneas se separan un poco para una mejor comprensión):
fuente