Zróbmy razem ćwiczenie, prawda? Po prostu podążaj za ruchami stickmana. O jakiego stickmana pytasz? Ten, który właśnie stworzymy!
Stwórz program, który pozwala na wprowadzanie ciągu zawierającego tylko liczby całkowite, i wyświetla następujące dziewięć liczb kreskowych z odstępem pomiędzy:
@ \@/ |@_ _@| @/ \@ |@| \@\ /@/
/|\ | | | | | | | |
/ \ / \ / \ / \ /|\ /|\ / \ / \ / \
1 2 3 4 5 6 7 8 9
Spowoduje to animację, którą będziemy mogli śledzić wzdłuż irl.
Oto przykład danych wyjściowych utworzonych, gdy dane wejściowe to „ 123245762
”:
Niektóre zasady:
- Jest to oznaczone kodem golfowym , więc wygrywa najkrótszy kod w bajtach
- Dane wejściowe
string
zawierają tylko dane[1-9]
o długości potencjalnie wahającej się od 2 do 100 znaków ** - Animacja musi być nieskończoną pętlą
- Interwał musi wynosić 750 ms
- Na wejściu nie są dozwolone duplikowane liczby całkowite - obejmuje to także pierwszą i ostatnią liczbę całkowitą wejścia (patrz siódmy i osiem przypadków testowych) **
** Sposób niepowodzenia w przypadku nieprawidłowego wprowadzania danych zależy wyłącznie od Ciebie, ale powinno być jasne, że się nie powiedzie . Może to rzucić wyjątek; po prostu wróć na początku; uruchom ponownie komputer; usuń własny kod źródłowy / kompilacyjny; włamać się do wojska i wystrzelić rakietę do kompilowanej lokalizacji GPS. Twoja decyzja. EDYCJA: Niedopuszczalne jest wyświetlanie (poprawnej / połowy) animacji jako błędnego wejścia. Musi być jasne, że coś jest nie tak z danymi wejściowymi dla nieudanych przypadków testowych poniżej. Dziękuję @ user81655 za zwrócenie mi na to uwagi, stąd edycja.
Subrule:
- Prześlij gif dla jednego z (nieudanych) przypadków testowych poniżej w swojej odpowiedzi, co możesz bardzo ułatwić za pomocą następującego programu: screentogif.codeplex.com ( Oczywiście każdy inny program do tworzenia gifów jest również dozwolony).
- Punkty bonusowe, jeśli faktycznie wykonasz ćwiczenie obok animacji po zakończeniu. ;)
Prawidłowe przypadki testowe:
123245762
65
121234346565879879132418791576
Nieudane przypadki testowe:
2
// Za mało znaków7282918274959292747383785189478174826894958127476192947512897571298593912374857471978269591928974518735891891723878
// Zbyt wiele znaków1232405762
// Zawierające nieprawidłowe dane wejściowe (the0
)112212
// zawodzi ze względu na11
i22
teraźniejszości1232457621
// Nie udaje się ze względu na początek i prowadzenie1
Odpowiedzi:
Pyth, 114 bajtów
Wypróbuj tutaj
(Bez pauzy, nieskończony)
źródło
0
.) Niezależnie od tego, dziękuję za wpis. Zdecydowanie jednym z najbardziej nieczytelnych fragmentów kodu dla tego wpisu jest moje przypuszczenie. :)SpecBAS - 387 bajtów
Powtarza pętlę, dopóki nie naciśniesz ESC. Niewłaściwe ćwiczenie (nieprawidłowe wprowadzanie - w tym przykładzie 0 jako jeden z kroków) prowadzi do otyłości. Pętle GIF, w programie po prostu zatrzymuje się w tym momencie.
#13
jest odpowiednikiem SpecBAS\n
i umożliwia dołączanie wiersza w ciągach znaków.źródło
JavaScript (ES6), 165 bajtów
źródło
JavaScript (ES6), 210 bajtów
źródło
0
i duplikowania?How it fails in case of invalid input is completely up to you
. Po prostu obsługuję nieprawidłowe wprowadzanie, wyświetlając animację. : P Żadna z pozostałych istniejących odpowiedzi też tego nie sprawdzała, jednak odpowiedź zrobiła właśnie przesłana przez PO, więc może chciał, abyśmy obsłużyli nieprawidłowe dane wejściowe.Mathematica, 252 bajty
Byłoby miło, gdyby ktoś mógł stworzyć GIF. Uruchom w zeszycie.
źródło
Python3, 338 bajtów
źródło
Java 8,
663636634631596355354 bajtówTylko dla loli próbowałem stworzyć program w Javie.
Wprawdzie jestem kiepski w golfie i wyrażeniach regularnych, więc najprawdopodobniej można w niego grać (dużo?) Więcej. Niemniej jednak, tutaj jest w Javie 7.Teraz prawie dwa lata później prawie o połowę kodu w Javie 8. Dlaczego kiedykolwiek stworzyłem te zasady dotyczące sprawdzania poprawności danych wejściowych i wymagania pełnego programu, chociaż ...>.> Nienawidzę moje poprzednie ja teraz ...
Wyjaśnienie:
Wypróbuj online. (Po upływie limitu czasu po 60 sekundach)
Gif:
(Uwaga: stary gif, ponieważ teraz jest to jdk1.8 +).
źródło
Java 7
o odwołaniu się do tej wersji Javy, ponieważ1.7
niektórzy mogą pomylić, że jest toJava 1
wersja7
p(new String[]{" @ ",y,"|@_", ... }[c-49]);if(c==49){p(x);l();}else if(c==53){w();p(x);}else d();
. Myślę też, że definiowaniel
iw
marnowanie znaków, teraz, gdy są one używane tylko dwa razy. Zastanów się, czys
zamiast tego byćchar[] s=a[0].toCharArray()
; wszystkie inne operacje na nim są zatem znacznie krótsze.