Komunikat
Otrzymujesz kadr z serii kulek spadających na siatkę 2D. Ta siatka jest otoczona niezmiennymi i nietłukącymi się ścianami, więc cała zawarta w nich akcja. Twoim zadaniem jest ustalenie, jaki będzie stan scenariusza po tym, jak grawitacja zrobi wszystko, co w jego mocy.
Elementy wewnątrz siatki
-
Podłoga nie zmienia kierunku spadających piłek.\
Prawy suwak zmienia ścieżkę piłki o jedną (1) pozycję w prawo./
Lewy suwak zmienia ścieżkę piłki o jedną (1) pozycję w lewo.o
Piłka.
Zasady
- Piłki spadają.
- Podłogi i zjeżdżalnie nie spadają .
- Jeśli piłka uderzy w zjeżdżalnię, która sprawi, że przejdzie ona przez ścianę (
\#
lub#/
) lub przejdzie przez podłogę, zjeżdżalnia będzie działać jak podłoga. - Kiedy piłka uderza w inną piłkę, staje się jedną piłką, ale zwiększa swoją moc do sumy obu piłek.
- Nowe kule (połączone) będą nadal zachowywać się jak zwykle.
- Kiedy piłka nie może się już poruszać, jest zastępowana przez swoją siłę.
- Moc piłki będzie zawsze wynosić najwyżej 9.
Wkład
Siatka zostanie podana w zmiennej łańcuchowej o dowolnej nazwie najkrótszej w wybranym języku. Domyślnie użyjemy a
jako danych wejściowych. Próbka danych wejściowych dokładnie takich, jakie otrzymano:
##########\n# \ #\n#o #\n# - -\o #\n#/- \ #\n# \oo-/\#\n#-/ \ /#\n# \ \ #\n# /#\n##########
Aby wygenerować losowe siatki, użyj https://repl.it/B1j3/2 . Zamiast tego użyj mojej wygenerowanej strony (bez reklam, bez bzdur, tylko dane wejściowe i wyjściowe)
Uwaga podziały linii są \n
. Wydruk danych wejściowych na ekranie (niewymagany w przypadku wyzwania) pokazałby takie rzeczy. Chociaż umieściłem cztery układanki obok w bezpiecznej przestrzeni.
########## ########## ########## ##########
# \ # # o -/# # o# #-o / #
#o # # \ # # o -# #-- \ /\ #
# - -\o # #- \ # # - \o# # - -- o-#
#/- \ # # # #o /\ # #/ \ #
# \oo-/\# #o -o- # # / -o# #/ /o oo/#
#-/ \ /# # -/- # # - o -# #o/ #
# \ \ # # \\ # # \o /# #o-o o#
# /# # \o\ /\# # \o # # -\o o /#
########## ########## ########## ##########
Wydajność
Ta sama siatka wydrukowana na ekranie z ostatecznym wynikiem siły kuli. Prawidłowa odpowiedź to jedna (1) z następujących łamigłówek, każda odpowiada wejściu w tej samej pozycji, oczywiście jeśli wejście jest inne, należy wyregulować wyjście. Nie ograniczaj się do tych czterech!
########## ########## ########## ##########
# \ # # -/# # 1# #-1 / #
# # # \ # # -# #-- \ /\ #
#1 - -\ # #- \ # # - \ # # - -- -#
#/- \1# # # # /\ # #/ \ #
# \ -/\# # -1- # # / -2# #/ / /#
#-/ \ /# # -/- # # - -# # / #
# \ \ # # \\ # # \ /# # - #
# 2 /# #1\2\ /\# #2 2\1 # #2-\3 23/#
########## ########## ########## ##########
Wynik
Języki będą ze sobą konkurować, więc nie krępuj się używać języków obcych. Aby zweryfikować rozwiązanie, muszę być w stanie go gdzieś przetestować, aby zobaczyć, czy działa!
Wynik to liczba bajtów. W przypadku remisu wygrywa pierwsza odpowiedź na wynik remisowy.
Ostrzeżenia
- Jeśli nie jestem pewien, jak piłka powinna zareagować, zapytaj mnie, a ja wyjaśnię, byłem tak jasny, jak tylko mogłem, ale jestem pewien, że są przypadki, które są mylące.
- Slajdy są przejeżdżane tylko wtedy, gdy możesz z nich wyjść , pomyśl o tym jak o prawdziwym slajdzie. Na górze jest facet, który nie przepuści cię przez piłkę, chyba że wyjdzie przez drugą stronę.
Wyjaśniające przykłady ruchu piłki
###### ######
#-o- # BALL WOULD GO RD #- - #
# \ # # \o #
###### ######
###### ######
#-o- # BALL WOULD STAY #-o- #
# \\ # # \\ #
###### ######
###### ######
# -o# BALL WOULD STAY # -o#
# \# # \#
###### ######
###### ######
# o # BALL WOULD STAY # o #
# \/# # \/#
###### ######
###### ######
#-o- # BALL WOULD GO LD #- - #
# /\ # #o/\ #
###### ######
AKTUALIZACJE
Jak mogę sprawdzić, czy moja odpowiedź jest prawidłowa?
Utworzyłem prostą stronę na jednej z moich stron, która da ci losową łamigłówkę i jej odpowiedź. Weź dane wejściowe i sprawdź je względem danych wyjściowych. Moje rozwiązanie, nie martwiąc się zbytnio o grę w golfa, to Python (generator, a także strona Python)389b
355b
Tabela liderów
źródło
Odpowiedzi:
JavaScript (ES6), 157
196Edytuj znak po znaku zamiast po wierszu, znacznie lepszy wynik
Uwaga: nie obsługuje wartości kulki> 9. Ale może, kosztem 18 bajtów. Zobacz kod podstawowy poniżej.
Fragment kodu TEST (lepsza pełna strona)
źródło
v>9?9:v
?JavaScript (ES6),
453426409306290286 bajtówPierwsze i najbardziej oczywiste rozwiązanie, jakie przyszło mi do głowy, to takie, które rozglądają się po slajdach, a następnie łączą się lub zastępują.
Nie golfowany:
Testuj jak:
Dzięki: @ edc65
źródło
b.replace(/o/g,'1').split``
można skrócić do[...b.replace(/o/g,1)]
Java,
Too Many1102987 bajtówPonieważ Java.
\ o / Jest poniżej 1000!
Cel strona była możliwość wydrukowania każdej iteracji rady: po prostu usunąć środkowy
;
inwhile(g.i())
;
System.out.print(g.s());
(Chociaż to powoduje wyłączenia ostatniego wydruku, który ma 0-> konwersji energii). Niestety, w tej wersji grawitacja działa dziwnie. Za każdym podaniem biorę pierwszą nie zablokowaną piłkę i ruszam nią. Krótkie spięcieiterate()
to mniej bajtów niż przejście przez całą płytkę, a następnie powrót w przypadku zmiany.Jest to pełna klasa główna, skompiluj i uruchom w wierszu poleceń z argumentem:
Wersja „czytelna”:
źródło
Python3, 355b
Przetestuj tutaj
źródło
PHP,
228 204 197194 bajtówwyświetla ostrzeżenia w PHP 7.1. Wstaw
(int)
przed,$a[$t]+$c
aby naprawić.Uruchom
php -nr '$a="<string>";<code>'
lub wypróbuj online .awaria
źródło