Spróbuj stworzyć prostą animację nożyczek artystycznych ASCII!
Wyzwanie
Wszystkie dane wejściowe będą liczbami całkowitymi od -31 do 31.
Wyjście będzie animacją (do przesłania gdzieś , dopóki poprzednia klatka zostanie zastąpiona. Dozwolone są pliki GIF.), Oddzielone (w przybliżeniu) 1 kwadrans.
Jeśli input ( n
) jest dodatni:
- Animacja powinna zaczynać się od
8<
otwartych nożyczek AKA. - Następna klatka to
8=
. To pokazuje „cięcie” nożyczek. - Za nożyczkami dodaje się myślnik (kreskę), a animacja powtarza się, dopóki nie pojawią się
n
myśli.
Jeśli dane wejściowe są ujemne:
- Nożyczki zaczynają się otwierać i skierowane w lewo (w ten sposób
>8
:), zn
odstępami przed nimi. - Nożyczki zamykają się i pozostają skierowane w lewo (
=8
). - Nożyczki otwierają się ponownie, gdy przestrzeń jest usuwana, a za nożyczkami dodawana jest kreska.
Jeśli wartość wejściowa wynosi zero:
- Wyjmij tylko nożyczki otwierające i zamykające, dla 10 klatek. Mogą być skierowane w dowolnym kierunku, o ile jest to spójne.
To jest golf golfowy , więc wygrywa najkrótsze przesłanie w bajtach. (Nawet jeśli twoje zgłoszenie wyraźnie nie wygra z powodu jakiegoś nowego „golfowego języka”, nadal chcielibyśmy go zobaczyć).
Komunikaty o błędach są dozwolone, o ile sam komunikat o błędzie nie zakłóca animacji.
Przykładowe pary wejść i wyjść:
(Rozdzieliłem klatki dla zachowania przejrzystości, ale pomiędzy każdą klatką powinno być około 0,25 sekundy)
Input: 1
Output:
8<
8=
-8<
Input: 2
Output:
8<
8=
-8<
-8=
--8<
Input: 5
Output:
8<
8=
-8<
-8=
--8<
--8=
---8<
---8=
----8<
----8=
-----8<
Input: 0
Output:
8<
8=
8<
8=
8<
8=
8<
8=
8<
8=
Input: -2
Output:
>8
=8
>8-
=8-
>8--
Input: -3
Output:
>8
=8
>8-
=8-
>8--
=8--
>8---
Cieszyć się!
Odpowiedzi:
SOGL V0.12 , 53 bajty
Wypróbuj tutaj!
źródło
MATL ,
595857 bajtówWypróbuj w MATL Online! Lub zobacz przykład uruchamiany z kompilatora offline:
źródło
JavaScript (ES2017) + HTML, 165 + 10 bajtów
-16 bajtów przez @Shaggy
Wypróbuj w poniższym fragmencie:
źródło
alert
każdej „ramki” może nie być zgodne ze specyfikacją, możesz uzyskać wyjaśnienie).alert
ponieważ wymagania są takie, że ramki przychodzą w odstępach ~ 0,25 s, coalert
nie byłoby obsługiwane bez dalszej ingerencji użytkownika.TI-BASIC, 173 bajty
Bardzo interesującą przeszkodą było wejście 0 zakończone w innej ramce niż inne.
Ponieważ TI-BASIC nie lubi pustych ciągów, zachowuje co najmniej jeden manekin po lewej stronie nożyczek, z których pierwszy jest zawsze spacją; miejmy nadzieję, że unikniemy liczenia tego jako części n spacji dla negatywnych danych wejściowych, program ten rozpoczyna drukowanie od skrajnej prawej kolumny pierwszego wiersza, a następnie owija pozostałą część łańcucha w dół, aby rozpocząć tam rzeczywiste pole animacji pierwsza kolumna.
Kilka uwag dla egzotycznego urządzenia: Rozmiar kodu TI-BASIC mierzony jest w tokenach, a nie w znakach. W celu uzyskania spójnych porównań między kalkulatorami zwykle ignorujemy liczby bajtów odnoszące się do długości nagłówków (np. Odejmujemy 8 z PROGRAMU: Nożyczki). Ponadto w przypadku procedur, które są w pełni dobrze zachowane na ekranie głównym (w większości pozbawionych struktur kontrolnych), dodatkowo eliminujemy rozmiar pustego programu, aby „zapisać” również na 9 bajtach. W szczególności tego programu nie można pisać na ekranie głównym, więc nie można zabrać wolności.
źródło
Oktawa ,
190186 bajtówWypróbuj online! (uwaga:
clc
nie działa w TIO, więc są to tylko wszystkie klatki animacji wysyłane sekwencyjnie). Dzięki za @LuisMendo za poinformowanie mnie o funkcjie(...)
w Octave, która jest równaexp(1)*ones(...)
.Okazuje się, że przypisania wbudowane zwracają tylko zmienione wpisy tablicy, a nie całą tablicę. Oznacza to, że podobne konstrukcje
q(k(i+1)+=s)
nie są możliwe, więc program jest prawie jak MATLAB. W rzeczywistości pozycja MATLAB jest tylko nieco dłuższa,MATLAB,
198195 bajtówźródło
+ones
brzydszego+~e
. Również w Octave i Matlab zamień[i i+1]
nai:i+1
.e(...)
ten sposób? Nie sądzę, że kiedykolwiek czułem potrzebę zastosowania macierzy m-by-ne
. To sprawia, że gra w golfa jest dobra.Czysty , 294 bajty
Wypróbuj online!
Pamiętaj, że to nie działa w TIO, link służy wyłącznie do celów prezentacji.
Wyniki mogą się różnić, jeśli masz
CLOCK_PER_TICK
stałą inną niż1000
domyślna dla Windows Clean Clean x86.źródło
Python 2 , 170 bajtów
Wypróbuj online!
źródło
(approximately) 1 quarter of a second
; dlaczego nie wykorzystać czasu snu w.2
sekundach i zaoszczędzić bajt?Rubin, 169 bajtów
Prawie samo wyjaśniające, kiedy się w to zagłębisz, przynajmniej moim zdaniem. Program musi być uruchomiony na komputerze z poleceniem / aliasem cls.
Wypróbuj online! (Musiałem zastąpić metodę system (), tylko dla tego skryptu, z powodu ograniczeń wymienionych powyżej.)
Próbowałem użyć
Ale właśnie wydrukował niewidzialną postać, ktoś wie dlaczego?
źródło