Zróbmy zegar artystyczny i kalendarz ASCII, który informuje nas o bieżącym miesiącu, dniu miesiąca, dniu tygodnia, godzinie, minucie i czy jest to noc czy dzień (ale nie rok czy sekunda).
W dowolnym momencie kalendarz będzie wyglądał mniej więcej tak: (wygląda lepiej przy mniejszych odstępach między wierszami)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
Jest to zawsze „ramka obrazu” o wielkości 66 na 23 znaków, której ramka nigdy się nie zmienia.
Obraz w ramce informuje nas o godzinie i dacie:
- W ciągu dnia (6:00 - 17:59) miesiąc zależy od liczby ptaków (
-.-
) na niebie. Styczeń = 1 ptak, luty = 2 ptaki itp. - W nocy (18:00 - 5:59) ptaki są zastępowane 3 razy większą liczbą gwiazdek (
*
). Styczeń = 3 gwiazdki, luty = 6 gwiazdek itp. Ptaki i gwiazdy nigdy nie są na niebie w tym samym czasie. - Dzień miesiąca zależy od liczby znaków między dwoma myślnikami (
-
) na wodzie. np.~~-~~~~-~~
oznacza, że jest to czwarty dzień miesiąca. W zależności od minuty łódź może wymagać przejścia między kreskami (kreski nie zawijają się). - Dzień tygodnia zależy od liczby chmur na niebie (wszystkie chmury wyglądają tak samo). Niedziela = 0 chmur , poniedziałek = 1 chmura, ..., sobota = 6 chmur.
- Godzina zależy od poziomu wody (i łodzi). Na najniższym (jak wyżej) jest godzina pierwsza, podczas godziny drugiej jest o jedną postać wyższa i tak dalej do godziny 12, a następnie z powrotem do godziny pierwszej. (Jest to zegar 12, a nie 24-godzinny).
- Minuta zależy od poziomej pozycji łodzi. W szczycie godziny łódź dotyka lewej krawędzi ramy (jak wyżej). W każdej kolejnej minucie łódź porusza się w prawo o jedną postać. W minutach od 51 do 59 pętla zaczyna się od prawej strony ramki z powrotem w lewo.
Biorąc pod uwagę, że powyższy przykład ma 3 ptaki, 3 chmury, 2 znaki między kreskami, wodę na najniższym poziomie, a łódź po lewej stronie możemy stwierdzić, że data to środa 2 marca, a czas to 1: 00:00.
Oto kolejny przykład z niedzieli 25 kwietnia o 03:58:
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
Cel
Twoim celem jest napisanie możliwie najkrótszego programu, który wypisze te „kalendarze” ASCII na standardowe wyjście, wykorzystując czas uruchomienia programu.
Każde uruchomienie programu powinno generować jedną scenę czasową. Aktualizacje nie powinny być automatyczne (ani animowane).
Chmury, gwiazdy i ptaki powinny być umieszczane losowo na niebie (więc każdy bieg, nawet te w tym samym czasie, może być inny). Nigdy nie powinny nakładać się na łódź ani na siebie nawzajem. (Również kreski wodne nie powinny zachodzić na kadłub łodzi).
Zauważ, że nic, co opisałem, nie pojawia się pod wodą. To jest do zrobienia. Podczas jednej określonej godziny każdego tygodnia (do wyboru) coś ciekawego należy narysować pod wodą. Może to być potwór morski, zatopiony statek lub cokolwiek, to zależy od ciebie. W tej godzinie możesz nawet zmienić projekt reszty sceny (pozostając w granicach kadru).
Punktacja
To jest kombinacja konkursu popularności golfa kodowego.
Twój wynik to (bytes in program) - 4 * (upvotes - downvotes)
. Najniższy wynik wygrywa.
Użyj http://mothereff.in/byte-counter jako licznika bajtów, jeśli używasz znaków spoza ASCII.
Uwagi i aktualizacje
Możesz użyć boi zamiast myślników, ponieważ, spójrzmy prawdzie w oczy, są one bardziej odpowiednie:
| | ~~(_)~~~(_)~~ (3rd of the month)
Kreski (lub boje) nie muszą być losowe, ale byłoby miło, gdyby tak było.
- Twoja „godzina specjalna” powinna trwać 60 minut od początku godziny do 1 minuty przed następną godziną.
- Podczas specjalnej godziny rzeczy, które rysujesz pod wodą, mogą się poruszać i mogą zmieniać powierzchnię i niebo, gdy ma to sens (np. Potwór morski jedzący łódź, czarna dziura tworząca się na dnie morza itp.)
źródło
Odpowiedzi:
Ruby, Na krańcu świata,
12601070967 bajtówCzy ktoś pamięta ten film Piraci z Karaibów?
Jest jeszcze dużo miejsca na poprawę golfa, ale to dopiero początek.
A co z odniesieniem do filmu? Najwyraźniej Zielony Błysk zdarza się o wiele częściej, niż Jack Sparrow chce, abyśmy uwierzyli. W rzeczywistości dzieje się to raz w tygodniu zamiast raz na dziesięć lat. W każdą niedzielę o zachodzie słońca Czarny Rubin (hrhr) robi jedną rundę w krainie umarłych:
źródło
Java - Cute Kraken (dużo bajtów)
EDYCJA: Dalsze ulepszenia w ptakach / gwiazdach przywołują górę i chmury, teraz najbardziej obciążony kalendarz (12:00, sobota, grudzień) działa przez około 70% czasu. Inne 30% dostaję (przygotuj się na to) błąd przepełnienia stosu, ponieważ korzystam z rekurencji. Nowe zdjęcia najbardziej zajętego kalendarza i nowe zdjęcie Kraken, które pokazuje minima / szczyty gwiazd / chmur.
Teraz lepiej radzi sobie z sytuacjami, w których losowe rozproszenie gwiazd / ptaków uniemożliwia przypadkowe wstawienie chmur. Kiedy rzeczy są zbyt zatłoczone i nie działa po 200 próbach, ponownie wykonujemy gwiazdy / ptaki w nadziei, że kolejna konfiguracja pozwoli chmurom na osobistą przestrzeń.
Kto jest uroczym kwaken? Kto jest uroczym kwaken? Ty jesteś! Ty jesteś!
Drobne zmiany, wciąż brak gry w golfa. Kwaken pojawia się w 9s, ponieważ wie, że wszyscy oczekują go o północy. Jest teraz mały i nieśmiały, ale pewnego dnia ma nadzieję zjeść statek.
Chmury mają tendencję do bycia nisko na niebie, podczas gdy gwiazdy i ptaki lubią latać nad nimi; rzeczy wydają się być trochę zatłoczone około 8 rano.
Dorywcza wydajność
bardzo zajęte wyjście
Jeśli mamy wprowadzić naszego krakena poprzez twarde kodowanie niektórych wartości, otrzymamy ...
źródło
Python3 - Piraci i meduza:
15801472 bajtówW każdą środę o północy statek piracki tonie naszą łódź. Hałas budzi gigantyczną meduzę, która przypadkowo wędruje po ramie przez godzinę.
Przykład we wtorek 19 sierpnia 23:27
W środy około północy:
źródło
Kobra - 994
Bez Bouysa: 994
Z Bouys: 1084
W każdą niedzielę o 1 w nocy niekończąca się przestrzeń tyldy morskiej ożywa olśniewającym niebieskim blaskiem. Nadzieja powraca do ludzi z opuszczonego świata muszli.
źródło
C #
11241128 bajtówRaz w tygodniu tandetna łódź podwodna ASCII powinna pojawiać się na godzinę poniżej linii wodnej i znacznie zwiększyć liczbę bajtów, mam nadzieję, że ten kod będzie działał teraz . Boję się myśleć, co stanie się w soboty o 11:00 w grudniu ...
Nieco sformatowany kod (który ponownie rysuje co 15 sekund, ponieważ źle odczytałem specyfikację):
Przykładowe dane wyjściowe (należy przeczytać 3:31, środa 13 sierpnia):
źródło
Lua - więcej niż gwiazdy
Skończyłem!
Cóż, jeszcze nie zrobione. Skończyłem z tym kodem i wyzwaniem. Nie gra w golfa, brakuje wskaźnika miesiąca. Nie da się uniknąć ... Zamieszczam to tylko po to, aby przy okazji nikt nie ukończył tego wyzwania, przynajmniej coś widziałeś, wpadł na pomysł.
Możesz na to spojrzeć tutaj.
źródło