Jesteś myszką Wszyscy twoi przyjaciele myszy zostali schwytani, są nieprzytomni i uwięzieni w labiryncie, który ma tylko jedno wejście / wyjście. Zdarza się, że masz idealną mapę labiryntu, dzięki czemu możesz opracować rozwiązanie, które pozwoli Ci wskoczyć i zabrać je wszystkie w bezpieczne miejsce. Jednak labirynt jest strzeżony przez system bezpieczeństwa, który wywoła alarm, jeśli próg 1000
zostanie osiągnięty, co spowoduje, że zostaniesz schwytany i nie powiedzie się Twoja misja ratunkowa.
Na podstawie poprzednich badań labiryntu każdy kwadrat, na który wchodzisz (tj. Każdy ruch poziomy lub pionowy - myszy nie mogą się poruszać po przekątnej ) dodaje 1
do licznika systemu bezpieczeństwa. Jeśli jednak nosisz ciężar (blok dynamitu lub nieprzytomny przyjaciel myszy), dodaje się, 2
ponieważ wykrywa dodatkowy nacisk. Kwadrat wejścia / wyjścia nie ma tego systemu bezpieczeństwa, więc nie dodaje się do licznika.
Masz nieograniczoną podaż dynamitu, który doprowadziłeś do wejścia, więc możesz po prostu wysadzić wszystkie ściany, aby uwolnić przyjaciół. Musisz jednak zachować ostrożność, ponieważ każda eksplozja zwiększa 50
kontratak wywołany wstrząsającą presją. Dodatkowo możesz nosić tylko jedną rzecz na raz, jedną mysz lub jeden blok dynamitu. Ponieważ każdy blok dynamitu może zdetonować tylko jedno miejsce na ścianie, oznacza to, że jeśli jest wiele ścian w rzędzie, musisz zrobić pustą podróż z powrotem do wejścia, aby złapać więcej.
Przepracowany przykład
Załóżmy, że nasz labirynt wygląda następująco:
######
#M# E#
######
Użyję c
do licznika. Zaczynamy na E
N-Trance, przesuń jeden lewy kwadrat podczas przenoszenia dynamitu c=2
. Mamy detonować dynamit eksploduje ściany, c=52
. Przesuwamy się o dwa kwadraty w lewo, z pustymi rękami, aby się dostać c=54
, i teraz stoimy na polu myszy. E
Podnosimy naszego przyjaciela i przenosimy 3 kwadraty z powrotem do xitu, ale ostatni kwadrat się nie liczy, ponieważ nie ma żadnych czujników, więc są to tylko 2 kwadraty z czymś na plecach. Oznacza to, że kiedy dotrzemy do wyjścia ostatnią myszą c=58
, czyli mniej niż 1000
, i dlatego misja się powiedzie.
Wyzwanie
Biorąc pod uwagę labirynt wejściowy, wypowiedz, czy ty, mysz-bohater, możesz skutecznie uratować wszystkie uwięzione myszy w ramach ograniczeń opisanych powyżej, czy też misja kończy się niepowodzeniem.
Wkład
- Labirynt 2D w dowolnym akceptowalnym formacie (ciąg wielowierszowy, tablica ciągów itp.).
- Do tego wyzwania użyję
#
zarówno ścian wewnętrznych, jak i zewnętrznych,M
przyjaciół myszy iE
wejścia. - Wejście nigdy nie będzie bezpośrednio przylegać do ściany wewnętrznej (zawsze będzie co najmniej jedno miejsce do swobodnego poruszania się).
- Możesz zastąpić dowolne znaki ASCII do wydruku , o ile są spójne. Pozwala to na użycie dwóch różnych symboli dla ścian wewnętrznych i zewnętrznych, o ile zachowasz spójność (np. Jeśli
@
zamiast tego zdecydujesz się na wewnętrzne ściany i pozostawisz#
na zewnątrz, każda ściana wewnętrzna musi być@
i każda ściana zewnętrzna#
). - Labirynt zawsze będzie całkowicie otoczony ścianami, ale niekoniecznie będzie prostokątny. W razie potrzeby możesz założyć, że labirynt jest wypełniony spacjami, aby wprowadzić prostokątne dane (opcjonalnie).
- Labirynt może mieć sekcje, które są nieosiągalne bez dynamitu.
- Nie można dynamitować zewnętrznych ścian labiryntu.
Wydajność
Truthy / falsey wartość. Prawda dla „Tak, mysz może uratować każdą inną mysz” lub Falsey dla „Nie, system alarmowy zostanie wyzwolony”.
Zasady
- Dopuszczalny jest pełny program lub funkcja.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
Przykłady
Prawdziwe przykłady oddzielone pustymi liniami.
#####
#M E#
#####
######
#M# E#
######
########
#E # M#
# # #
# # #
# #
########
#############################
# ## # # #
# M ## M # # #
# ## # M # E #
#M ## # # #
#############################
###############
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMM MM#
#MMMMMMMMMMMME#
###############
Przykłady Falsey, oddzielone pustymi liniami
#############################
#M ## ## ## #
# M ## M ## ## #
# ## ## M ## E #
#M ## ## ## #
#############################
#############################
########
########
# # #
# M # M#
########
#####
# M #
#####
#####
#####
#####
###################
# # # ## ## # # #
#M#M#M## E ##M#M#M#
# # # ## ## # # #
###################
#######
######
#####
####
# M#
####
###############
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMME#
###############