cat
nazywa się „Meow”
Wszyscy znamy koncepcję cat
programu. Użytkownik wpisuje coś, echo powraca do użytkownika. Łatwy. Ale wszystkie cat
programy, które do tej pory widziałem, pominęły jeden fakt: cat
„Meow”. Więc twoim zadaniem jest napisanie programu, który skopiuje wszystko STDIN
do STDOUT
UNLESS wejścia cat
, w którym to przypadku twój program powinien wypisać dane cat goes "Meow"
.
Punktacja
To jest golf golfowy , więc twój wynik jest liczbą bajtów, z kilkoma modyfikatorami:
- Jeśli twój program działa na dodatkowe zwierzęta inne niż
cat
(np.cow: cow goes "Moo"
), Dla każdego dodatkowego zwierzęcia: -10 - Jeśli twój program nie używa słowa „kot”: -15
- Jeśli Twój program odpowie
fox
„Co mówi lis”: -25
Zwierzęta i dźwięki, które idą w parze:
cow goes moo
duck goes quack
sheep goes baa
bees go buzz
frogs go croak
Wszystko inne na tej liście jest dozwolone.
Zasady
- Standardowe luki zastosowanie
- Nie wolno ci nic pisać
STDERR
- Zamiast podwójnych cudzysłowów można używać pojedynczych cudzysłowów / bez cudzysłowów.
Tabela liderów
Oto fragment kodu, który pozwala wygenerować zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka.
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
## Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Jeśli chcesz umieścić w nagłówku wiele liczb (np. Ponieważ twój wynik jest sumą dwóch plików lub chcesz osobno wymienić kary za flagi tłumacza), upewnij się, że rzeczywisty wynik jest ostatnią liczbą w nagłówku:
## Perl, 43 + 2 (-p flag) = 45 bytes
Możesz także ustawić nazwę języka jako link, który pojawi się we fragmencie tabeli wyników:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
Odpowiedzi:
Pyth, 231-255 = -24 bajty
-24 * 10 dodatkowych zwierząt, -15 za brak sznurka „kot”
Link do kodu
Pseudo kod
Zwierzęta, które zna:
źródło
squalk
sobie pójdąTeaScript , 29-15 = 14 bajtów
Nie używa łańcucha
cat
.„Co mówi lis” (długość = 21) jest dłuższe niż wartość premii.
źródło
CJam, 12 bajtów
Program ma 27 bajtów długości i nie używa słowa
cat
( -15 bajtów ).Wypróbuj bezpośrednio w interprecie CJam .
Jak to działa
źródło
:)
APL (Dyalog) , 28-15 = 13 bajtów
Wejście, po którym następuje,
goes "Meow"
jeśli wejście jest równoważnetac
odwróceniu.Wypróbuj online!
{
…}
Anonimowa funkcja⌽'tac'
odwróć ciąg (aby uzyskać premię -15, unikając postacicat
)⍵≡
Wartość logiczna dla tego, czy argument jest identyczny z tym' goes "Meow"'/⍨
użyj tego do filtrowania ciągu (tzn. zwraca pusty ciąg, jeśli false)⍵,
dołącz do argumentuźródło
Stos , 51 bajtów
źródło
JavaScript,
45-15 =30/264 - 235 = 29Wadą: musisz wpisać nazwę zwierzęcia z pierwszą literą wielkimi literami, a resztę małymi literami. Poszukaj innej wersji, która to rozwiązuje. Ta wersja ucieka
a
kotowi z\x61
i zawiera kod 22 dodatkowych zwierząt z tej listy (wszystkich dozwolonych zwierząt, które miały wystarczająco krótkie słowa, aby były tego warte):(podziękowania dla mojego przyjaciela za pomoc w żmudnym zadaniu tworzenia tej listy)
Nieskluczony kod:
Pierwsza wersja, 45 bajtów - 15 bonusów = 30
Tak, wiem. Poszedłem z 30 do 29 z WSZYSTKIMI dodatkowymi pracami. To była zabawa!
Wersja umożliwiająca wprowadzanie pełnych małych liter, 294 bajty - 235 bonus = 59
Próbowałem również usunąć obudowę z tablicy danych,
.join().toLowerCase().split(',')
ale skończyło się to na 297 znakach.źródło
JavaScript,
81–20–15 = 46 bajtów50–15 = 35 bajtówźródło
'c\at'
zamiast'ca'+'t'
?alert({'c\at':'c\at goes "Meow"',fox:'What does the fox say'}[a=prompt()]||a)
. Dlaczego nawet nie porzucić alertu? Już zwraca wynik do konsoli.GNU sed, 37-15 = 22 bajtów
źródło
MATLAB, 58–15 = 43 bajty
Całkiem prosto, z premią za nieużywanie
cat
w kodzie:Wejście musi być podane wewnątrz pojedynczych cudzysłowów:
' '
.źródło
JavaScript, 117 bajtów
Na pewno tu nie wygrałem, ale omówiłem wiele dodatkowych zwierząt.
JavaScript, 31 bajtów
źródło
HALT , 71-15 = 56 bajtów
HALT to język, który ja (@Downgoat) stworzyłem do przetwarzania ciągów, jedynym problemem jest to, że jest nieco długi
Sformatowany
źródło
Python 3,
81705546 - 15 = 31 bajtówDzięki Stewie Griffin za uratowanie 15 bajtów
Dzięki grc za oszczędność 8 bajtów.
Nieużywanie ciągu
cat
daje -15 bajtów.źródło
JavaScript, 48–15 = 33 bajty
Zastosowania
\x61
jako substytuta
incat
.źródło
Perl, 46–15 = 31
źródło
Rubinowy,
494650-15 = 35 bajtówChyba całkiem proste. Nie używa kota
Edycja: Dzięki za @ w0lf za zapisanie 3 bajtów!
źródło
chop
: ideone.com/lTpShDPHP, 1204 - (10 * 64) - 15-20 = 529 bajtów
Używam skompresowanej gz skompresowanej gz dźwięków zwierząt. Oznacza to, że działa ze wszystkimi 65 dozwolonymi zwierzętami, ale mój skrypt jest ogromny. Działa również z lisem i nie ma w nim słowa cat.
źródło
MATLAB, 46 bajtów
Co prawda banalne. Dane wejściowe należy podawać w pojedynczych cudzysłowach.
źródło
ans = ..
ogólnie nie jest akceptowany, jeśli wyzwaniem jest wydrukowanie czegoś. Nie jestem pewien, czy jest to konsensus, ale jest dość powszechny w użyciudisp
lub coś podobnego.Belka ,
208206-15 = 191 bajtówNie jest to konkurencja, ale trochę zabawy. Sprawdza pierwsze pod kątem liter wejścia
cat
. Jeśli wystąpi niedopasowanie, nastąpi skrót do standardowego programu cat. Jeśli pasuje, to się dołączygoes "Meow"
źródło
Java = 222 bajty (skompresowane)
Albo mógłbym to zdekompresować.
Partia = 52 bajty
źródło
JavaScript: 48 znaków, 48 bajtów
Test
=>
"Pies"<=
"Pies"=>
"kot"<=
"Kot robi miau"źródło
s=="cat"
. Również sznurek kota powinien byćcat goes "Meow"
, więc'function(s){return s=="cat"?'cat goes "Meow"':s}
jest całkowicie poprawny.s=>s=="cat"?s+' goes "Meow"':s
(30 bajtów)Haskell, 52-15 = 37 bajtów
Używanie
\99
jako zamiennika c w „cat”, aby uzyskać premię 15 bajtów.źródło
O ,
221614 bajtów29 bajtów - 15
Jest długi i można w niego grać więcej
źródło
𝔼𝕊𝕄𝕚𝕟 , 23-15 = 8 znaków / 58-15 = 43 bajtów
Try it here (Firefox only).
Stosunek bajtów do znaków jest rzeczywisty.
źródło
Pyth, 82-95 = -13 bajtów
W końcu zacząłem konwertować mój nowy funkcjonalny wpis do Pythona 2 na Pyth. Nie pokonuje najlepszego rywala. Okazuje się, że skompresowanie większej liczby zwierząt do większego słownika zmniejsza wynik szybciej niż sprytne skojarzenie zwierząt z dźwiękami. Obsługuje 8 zwierząt oprócz kota: nosorożca, okapi, łosia, lwa, tygrysa, borsuka, hipopotama i jelenia.
Wypróbuj online
źródło
Japt,
25-15 = 1024-15 = 9 bajtówPo raz pierwszy próbuję Japt:
ƒ
należy zastąpić niedrukowalnym znakiemU+0083
Kompiluje w celu:Stare rozwiązanie:
Wypróbuj tutaj
źródło
U+0083
można go zamienićU+0192
lubƒ
po uruchomieniu tego fragmentu kodu:"\u0083".charCodeAt()
Pyth, 26-15 (bez „cat”) = 11 bajtów
Mój pierwszy w historii program w języku Pyth!
Wypróbuj tutaj
Wyjaśnienie
źródło
C ++ 11, 316–11 * 10–15 = 191 bajtów
Kompiluje się dobrze z VisualStudio. GCC chce, żebym
#include <string>
i#include <cstdio>
. Byłbym krótszy, gdybym nie poszedł na premie, ale nadal mam nadzieję, że autor zrewiduje premie. Nie mogę wymyślić języka, w którym definiowaniecow -> moo
jest o wiele krótsze niż 10 bajtów. Moje3+key+value
bajty kosztów dla dodatkowych bajtów zwierzęcych i płaskie22+17
dla zdefiniowania struktury i tak dalej.Bez golfa
źródło
using
nie jest to wielka sprawa, lista inicjalizująca to.#include <map>
się#import<map>
na -2 bajtów. Poprzednia spacja<
może zostać pominięta i wyświetla#import
ostrzeżenia, ale akceptowane są GCC i MSVCPyth, 31-15 = 16 bajtów
Możesz to wypróbować tutaj
Wyjaśnienie:
źródło
C99
można zastąpić\C
. Nadal jest+\C"at"
, więc możesz zachować bonus.C, 76 bajtów
źródło
PHP, 70-15 = 55 bajtów
(zapisany jako ISO-8859-1)
Używa odwróconych niezdefiniowanych stałych jako literałów łańcuchowych:
~òõ
=="\r\n"
~œž‹
=='cat'
~ߘšŒßݲšˆÝ
==' goes "Meow"'
Wszystko jest połączone w jednym wyrażeniu echa, w skrócie
<?=
źródło