Mieszkam w Wielkiej Brytanii, gdzie pada deszcz. Dużo. Mam również niefortunną konieczność noszenia okularów, aby zobaczyć, co oznacza, że gdy pada deszcz (tak jak teraz), ledwo mogę je zobaczyć. To wyzwanie pozwala wszystkim doświadczyć tego samego!
Zadanie
Wyjmij szklanki artystyczne ASCII z kroplą wody dodawaną co sekundę.
Wkład
Żaden
Wydajność
Para szklanek z kroplami wody na nich.
Okulary
________________________
| /__\ |
| / \ |
| / \ |
\_______/ \_______/
krople deszczu
Kropla deszczu jest oznaczona przez .
. Kropla deszczu jest losowo umieszczana na soczewkach okularów. Tak więc po umieszczeniu kropli deszczu okulary mogą wyglądać tak
________________________
| /__\ |
| . / \ |
| / \ |
\_______/ \_______/
Jeśli zostanie umieszczony na pustym miejscu ( ),
.
na obrazie zostanie umieszczony znak „ an” . Jeśli zostanie umieszczony na kwadracie, który już ma kroplę deszczu, kropla kończy się.
Kroki na kroplach są
- żadnych kropel umieszczonych:
- 1 kropla umieszczona:
.
- 2 krople umieszczone:
o
- 3 krople umieszczone:
O
- Ponad 4 umieszczone krople:
@
Zasady
- Obraz powinien wyglądać, jakby pozostał na miejscu. Oznacza to, że możesz wyczyścić ekran lub wydrukować wystarczającą liczbę wierszy, aby „wyczyścić” ekran. Nie można zwrócić listy kroków. Przepraszam za to, ale powinieneś być w stanie to obejść.
- Podczas wysyłania znaku nowej linii w celu „wyczyszczenia” ekranu, pomiędzy okularami muszą znajdować się co najmniej 3 znaki nowej linii.
- Kod działa, dopóki szklanki nie zostaną wypełnione w pełni stopniowanymi kroplami, tj. Dopóki dane wyjściowe nie będą wyglądały tak:
________________________ | @@@@@@@@@@ / __ \ @@@@@@@@@@ | | @@@@@@@@@ / \ @@@@@@@@@ | | @@@@@@@@ / \ @@@@@@@@ | \ _______ / \ _______ /
- Najkrótszy kod w bajtach wygrywa.
@
, prawda?Odpowiedzi:
JavaScript (ES6),
269267265 bajtówEdycja: Zapisano
24 bajty dzięki @Shaggy.źródło
innerText
zamiasttextContent
isearch
zamiastindexOf
. I kilka innych po prostu<pre id=o
jako HTML, a niedocument.write
go.Java 8,
449421 bajtówWyjaśnienie:
Wypróbuj tutaj. (
Thread.sleep
jest usuwany, więc natychmiast widzisz wynik).Wydajność:
UWAGA: Kropki są trochę dziwne w gifie, ale to problem w moim ScreenToGif.exe ..
źródło
"
) naprawdę wyglądają, jakby na moim ekranieF #, nierekurencyjne
379414404 bajtówWypróbuj online!
Uwielbiam przesłankę tego wyzwania :)
I dzięki za robaka usznego.
F #,
406441438437423 bajtówWypróbuj online!
Wyjaśnienie
źródło
open System
i usunięcieSystem
zRandom()
iThreading.Thread.Sleep()
połączeń;)Python 2,
365328 bajtówTo trochę lepiej ...
Wypróbuj online
Powyższy link używa 30 linii zamiast 3, ale możesz zobaczyć go za pomocą 3, jeśli zmienisz rozmiar okna przeglądarki, aby było wystarczająco małe w pionie. Zmień
time.sleep(1)
natime.sleep(.1)
na 10x prędkość.źródło
C,
313309305304 bajtówTrzeba trochę pograć w golfa;
Uruchamiam go za pomocą następującego kodu testowego
źródło
Rubinowy ,
237224228218206198197 bajtówWypróbuj online!
Poprzednia odpowiedź była błędna, nie uwzględniała kropli deszczu spadających na @.Najwyraźniej nie jest to wymóg. Niektóre bajty zapisane.To kończy się z wygenerowanym błędem, ale z pewnością kończy się, gdy tylko zostaną wydrukowane pełne szkła.
umieszczając wydruk w lambda izmieniając przypisanie, aby użyć tr (duh)\\
bea
, a następnie powrót do wewnątrz trx
(duh). W przypadku, gdy niektórzy z was zastanawiają się, dlaczego nie wpływa to na główną pętlę: główna pętla nie bierze pod uwagę ostatniej linii do jej określeniax
.na końcu górnej części szklanek
Tak <200 bajtów: D
Gif:
źródło
Bash,
576510429416 bajtówWow, dużo grałem w golfa. Jeśli ktoś ma jakiś pomysł na dalszą grę w golfa, jestem otwarty na sugestie
Spróbuj sam! Komentowany jest sen ze względu na limit 60 sekund
Oto gif:
źródło
Perl, 167 bajtów
Zauważ, że
\x1b
jest to dosłowna postać ucieczki.Zobacz online!
źródło
Mathematica, 438 bajtów
oto gif z 10-krotną szybkością
źródło
Table
,95
i32
?t=Table
x = 32
iy = 95
?Flatten
zf
?PHP,
262254 bajtówUruchom
-nR
lub wypróbuj online .awaria
źródło