Wyzwanie
Zakoduj rodzaj pliku cookie ASCII zgodnie z danymi wejściowymi.
Wejście
- Rodzaj ciasteczka. Jest to jeden z trzech ciągów: „Zwykły”, „Czekoladowy” lub „Orzechy”. Mogą to być argumenty funkcji, standardowe (lub najbliższy odpowiednik) lub argumenty pliku.
Wynik
- Plik cookie ASCII. Patrz poniżej.
Musi być
___
/ \
| |
\___/
dla zwykłego wejścia,
___
/. .\
| . |
\___/
na wkład czekoladowy i na koniec
___
/^ \
|^ ^|
\___/
dla wejścia nakrętki.
Inne informacje
- To moje pierwsze wyzwanie, jest tak proste, jak to tylko możliwe. Konstruktywne opinie są bardzo mile widziane.
- Wykorzystaj do tego wszelkie środki.
- Spacje końcowe są w porządku.
- Jest to wyzwanie dla golfistów, więc wygrywa najkrótszy start pod koniec 9 dni (środa, 12 sierpnia 2015).
Dziękuję Ci!
Zwycięzcą jest Jakube używający Pyth z 41 bajtami. Dziękujemy wszystkim, którzy uczestniczyli. Zadam teraz sobie zadanie wymyślenia bardziej skomplikowanych wyzwań.
Odpowiedzi:
Pyth,
4241 bajtówWypróbuj online: Regular Input / Test Suite
Wyjaśnienie:
źródło
Ruby, 73
To anonimowa funkcja lambda. Oto w programie testowym:
Po prostu używa pierwszej litery typu pliku cookie (wielkimi literami) i przyjmuje modulo 3, aby uzyskać indeks w zakresie
0..2
. Następnie zwraca ciąg reprezentujący plik cookie, a odpowiednie ciągi są osadzone w odpowiednich miejscach.źródło
ord
może zrobić metoda, jeśli wywołasz ją dla całego ciągu? Moim pierwszym pomysłem było sformatowanie:->s{" ___\n/%1$s \\\n|%1$s %1$s|\n\\___/"%'^. '[s.ord%3]}
tr
okazuje się być krótszy:->s{' ___↵/% \↵|% %|↵\___/'.tr ?%,'^. '[s.ord%3]}
s[0] --> s
, nigdy nie przyszło mi do głowy, aby spróbować. Twój kod wydaje się nie dawać właściwej odpowiedzi na czekoladowe pudełko, ponieważ chipsy czekoladowe są w innych miejscach niż orzechy. Niemniej jednak istnieje kilka przydatnych pomysłów, przyjrzę się im później. Nie korzystałemtr
ani%
wcześniej.tr
składnią. Jest tylko postacią nie związaną ze sztuką ciasteczek, której użyłem jako symbol zastępczy.)Python 2.7.6, 99 bajtów
Algorytm ten opiera się na fakcie, że
hash(cookie)%3
daje 0 kiedycookie = "Plain"
, 1 kiedycookie = "Nut
i 2 kiedycookie = "Chocolate
. Jeśli ktoś zna sposób na skrócenie tego kodu, daj mi znać w komentarzach.źródło
C: 122
Wyjaśnienie po zakończeniu gry w golfa.
Przykład zastosowania:
źródło
CJam,
4948 bajtówWypróbuj online w interpretatorze CJam .
Jak to działa
Na koniec CJam automatycznie drukuje wszystkie elementy na stosie.
źródło
JavaScript (ES6), 90
Jest to anonimowa funkcja strzałki. Wykorzystuje długość danych wejściowych, aby określić, który plik cookie ma zostać narysowany.
Wyjaśnienie:
Testować:
źródło
BrainFuck,
481447436 bajtówDlaczego nie BrainFuck ?, program może być bardziej golfowy, ale myślę, że jest całkiem fajny.
źródło
C # Z wcięciem i łamaniem linii
Gra w golfa (225 znaków)
źródło
String C= Console.ReadLine(),E=
... itd.?C # 6, 105 bajtów
Więc prawie otrzymałem te poniżej 100 bajtów, choć nie mam pojęcia, skąd wycisnąć kilka ostatnich bajtów: C
źródło
Pyth,
5854535250 bajtówNie sądzę, że można więcej grać w golfa. Naprawdę próbowałem zgnieść to do 50 bajtów
źródło
". . . " -> *". "3
JavaScript (ES6), 72 bajty
Mniej więcej tak proste, jak to tylko możliwe… nowe wiersze są liczone jako 1 bajt.
Próbny
Ponieważ jest to ES6, to demo działa na razie tylko w Firefox i Safari.
źródło
Commodore 64 BASIC, 181 bajtów
Uwagi:
Zamiast ukośników odwrotnych
\
zastosowano znaki SHIFT-M, dla ukośników/
- SHIFT-N, a dla potoków|
- SHIFT-T. Zastosowano SHIFT-Z (diamentowy znak karty)^
. W rzeczywistości znaki nie mają znaczenia, ponieważ wszystkie zajmują jeden bajt.Ponieważ na C64 każda komenda (PRINT, INPUT, THEN itd.) Zajmuje 2 bajty pamięci (lub nawet jeden, IIRC), język BASIC był wart wypróbowania (jednak zabrał więcej bajtów niż się spodziewałem).
Rozmiar programu obliczono mierząc wolną pamięć przed wpisaniem programu (38909 bajtów) i po (38728 bajtów) za pomocą
PRINT FRE(0)+65536
polecenia, co daje 181 bajtów różnicy.Testowany kod i zrzuty ekranu przygotowane za pomocą tego narzędzia: http://codeazur.com.br/stuff/fc64_final/ (GPL).
Zrzuty ekranu:
źródło
Lua 5.3,
113 bajtów112 bajtówWykorzystuje dużo trójskładnikowego operatora i konkatenacji ciągów, a ja wyciąłem wszystkie białe znaki, które nie są częścią samego wyjścia.
źródło
Java
258217 znaków / bajtówGrał w golfa
Oryginalny
źródło
LUA 270 znaków 270 bajtów
źródło
cookie
goc
, usuwaj białe znaki podczas ifs, usuwaj te niepotrzebneio.read()
s, pierwsza i ostatnia linia ciasteczka jest zawsze taka sama, ...LOLCODE 265 znaków
Run
źródło