Nagle bardzo chcę grać w tenisa, ale niestety nie mam kortu!
Niespodzianka! Właśnie tam wchodzisz.
Musisz wydrukować dla mnie kort tenisowy, ale musisz to zrobić w jak najmniejszej liczbie bajtów z powodów poufnych.
Kort tenisowy
---------
| |
---------
| | |
xxxxxxxxx
| | |
---------
| |
---------
Odpowiedzi:
Płótno , 13 bajtów
Wypróbuj tutaj!
źródło
Python 2, 65 bajtów
Flp.Tkc zapisał bajt.
źródło
'|'+' '*7
drugiego ciągu,s
aby zapisać bajt!05AB1E ,
292726 bajtówWypróbuj online!
źródło
9'-×D'|4ð׫©ûs®¨'|«û5'x×»û
próbowałem trochę refaktoryzować, nie mogę złamać 26.Python 3 -
7372 bajtyPython 3.6 - 75 bajtów
Kredyt trafia do flp-tkc . Dziękuję Ci :)
Wypróbuj tutaj!
źródło
/// ,
6456 bajtówWypróbuj online!
Kolejne rozwiązanie 56-bajtowe:
źródło
V , 25 bajtów
Wypróbuj online!
Powinno to być 23 bajty:
Ale podczas tworzenia natknąłem się na kilka błędów. :(
źródło
Galaretka , 25 bajtów
TryItOnline!
Miałem nadzieję, że zastosuję powtórzenie 1,3,1 kwartału, ale nie mogę tego wycisnąć na mniej (wersja surowa to 28:)
“ßṂuB’b4s3x“¢¤¢‘ị“- x|”ŒBŒḄY
.W jaki sposób?
źródło
J,
70545150 bajtówOszczędność bajtu dzięki Zgarb!
Niektóre standardowe techniki kompresji przy użyciu skompresowanego pliku RLE.
źródło
9 9$'-| |-| | |x| | |'#~3 9 1 7{~4#.inv 1851926050
Rubinowy, 60 bajtów
Bez golfa
źródło
narzędzia bash / Unix,
5857 bajtówNa żądanym wyjściu pojawiają się tylko cztery znaki inne niż nowa linia, co pozwala na zakodowanie każdej linii jako liczby podstawowej 4. Liczby te są następnie zapisywane w skrypcie w systemie szesnastkowym, dla zwięzłości.
Kalkulator unix dc służy zarówno do konwersji base-16 do base-4, jak i do manipulacji stosami, aby umożliwić łatwe powtarzanie linii w odpowiednich miejscach.
Edycja: Ogolono jeden bajt, zamieniając dwie z 4 podstawowych cyfr używanych do kodowania znaków, dzięki czemu komenda tr może być o jeden bajt krótsza niż poprzednia wersja.
źródło
JavaScript, 85 bajtów
źródło
JavaScript (ES6),
86848381 bajtówZaoszczędzono 2 bajty dzięki Neilowi
Alternatywna metoda # 1, 93 bajty
Alternatywna metoda # 2, 86 bajtów
Sugerowane przez Neila:
Alternatywna metoda # 3, 91 bajtów
Podejście rekurencyjne:
źródło
console.log('-9\n| 7|\n-9\n| 3| 3|\nx9\n| 3| 3|\n-9\n| 7|\n-9'.replace(/.\d/g,s=>s[0].repeat(s[1])))
(\n
oczywiście zastąp znakiem nowej linii).console.log('-\n |\n-\n |\nx\n |\n-\n |\n-'.replace(/.*/g,s=>s.repeat(9).slice(-9)))
.|
zamiast pojedynczej spacji, która pojawia się w moim komentarzu.SOGL 0,5 ,
242320 bajtów (niekonkurencyjny)Wyjaśnienie:
Jak działa skompresowany ciąg?
Łańcuch przekonwertowany z base250 na binarny to
1000000100111110010100001110100000001100010001
i w przybliżeniu to, co robi:
niekonkurujące, ponieważ język jest datą na wyzwanie. A to wyzwanie ma dopiero jeden dzień. Wiedziałam, że powinnam coś wczoraj postawić. Zrobiłem to jako test dla mojego języka, który okazał się zbyt dobry, aby nie publikować. Jestem pewien, że jest to również bardziej do gry w golfa.
źródło
/// , 59 bajtów
Wypróbuj online!
Outgolfed ...
źródło
JavaScript (ES6), 86 bajtów:
Przetestuj tutaj:
źródło
b
, ponieważ oznacza to, że możesz usunąć nowy wiersz poxxxxxxxxx
i ten, który dodajesz międzya
ab
. Można zaoszczędzić kolejne 3 bajty, ustawiająca
się---------
najpierw, a następnie łączenie drugiego wiersza i do siebie.05AB1E , 26 bajtów
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
PHP,
6662 bajtówOto oryginalna odpowiedź (66 bajtów):
Generuje zawiadomienie z powodu nieznanej stałej
x
. Powiadomienie można ukryć, ustawiającerror_reporting=0
wphp.ini
wierszu poleceń lub w wierszu poleceń:Ostatni wiersz wyniku nie kończy się znakiem nowej linii.
Zaktualizowana odpowiedź (62 bajty), poprawiająca ulepszenie sugerowane przez @Titus:
Uruchom go bez pliku konfiguracyjnego (domyślnie w
error_reporting=0
ten sposób):Obie wersje kodu zawierają dosłownie nowe wiersze osadzone w ciągu (1 bajt krótszy niż
\n
) i nie możemy go rozpakować.źródło
-d error_reporting=0
, po prostu użyj-n
.<?=$a=($b="---------\n|")."...
.-n
jest znacznie krótszy niż-d error_reporting=0
:-) Odpowiedź zawiera tylko 66 użytecznych znaków. Policzyłem je za pomocąls -l
i zapomniałem, że mojavi
konfiguracja ma zapewnić, że plik kończy się nową linią. Poprawiłem twoje ulepszenie i wycisnąłem jeszcze 3 bajty. Dziękuję Ci.PHP, 72 bajty
Prawie nienawidzę tego, gdy jest tak krótszy niż przy odrobinie kalkulacji.
źródło
Ruby, 52 bajty
Korzystając z podwójnej symetrii, następujące linie:
0-1-0 / 2-3-2 / 0-1-0
pętla może być łatwo rozwinięta, a lista zagnieżdżona jest spłaszczana na wyjściu.źródło
Pyke,
282625 bajtówWypróbuj tutaj!
źródło
05AB1E, 25 bajtów
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
Wyjaśnienie:
źródło
Vim, 32 bajty
Spowoduje to wydrukowanie kortu tenisowego w buforze vim.
^M
reprezentuje klawisz Enter (0x0d) i^[
jest klawiszem Escape (0x1b). Możesz uruchomić te naciśnięcia klawiszy / kod, zapisując je do pliku i uruchamiającDrukowanie na standardowe wyjście
Jeśli zamiast tego trzeba go wydrukować na standardowym wyjściu, możesz zapisać bufor do pliku (użyłem „a”) i użyć dowolnej powłoki, która
vim
ma być używana (użyłembash
), a takżecat
programu, aby wydrukować kort tenisowy do standardowe wyjście (51 bajtów):Jest taki sam jak wcześniejsza wersja, ale z
:w!a|sil !cat %^M:q^M
dodanym na końcuźródło
J, 36 bajtów
Działa to na REPL, który jest standardowym sposobem używania J:
Z 41 bajtami mogę wydrukować wynik do STDOUT:
Wypróbuj online!
Wyjaśnienie
Kort tenisowy buduję jeden rząd na raz.
źródło
PowerShell ,
6766 bajtówWypróbuj online!
Wystarczy pomnożenie ciągu, ustawienie zmiennych i upewnienie się, że są one otoczone parenami w celu umieszczenia kopii w potoku. Domyślne ustawienie
Write-Output
po zakończeniu programu daje nam nowe linie pomiędzy za darmo.Dzięki @ConnorLSW za zapisanie oczywistego bajtu.
źródło
$(' '*7)
to tak naprawdę 8 znaków, byłoby to krótsze, aby zrobić je| |
jako spacje.ToLower()
Python 2, 75 bajtów
Wykorzystuje zmienne zapożyczone z @GurupadMamadapur
Alternatywa również dla 75
źródło
Emacs,
4335 klawiszyM-9
x
RET: dziewięć x, powrótC-SPC: set mark
|
M-3 SPC|
M-3 SPC|
RET: rura, trzy spacje, rura, trzy spacje, rura, powrótM-9
-
RET: dziewięć łączników, powrót|
M-7 SPC|
RET: rura, siedem spacji, rura, powrótM-9
-
RET: dziewięć łączników, powrótC-x C-x: punkt wymiany i znak, wybór regionu
M-w: kopiuj region
C-p: poprzedni wiersz
C-y: yank skopiowany tekst
M-x
rev-r
RET: wykonajreverse-region
polecenieźródło
Lua, 82 bajty.
Próbowałem wielu metod, a jednak ta okazała się zwycięzcą.
źródło
Pushy , 33 bajty
To pytanie miało 33 pozytywne głosy i były 33 odpowiedzi, więc musiałem tylko opublikować 33-bajtowe rozwiązanie ...
Wypróbuj online!
Wyjaśnienie
Kod można podzielić na kilka części, aby ułatwić jego zrozumienie. Pierwsza część działa tak:
Stos jest teraz:
Operator
w
lustra następnie odzwierciedla cały stos, wytwarzając:Następnie:
Stos zaczyna teraz wyglądać jak kort tenisowy:
Aby to zakończyć, ponownie używamy operatora lustra
w
, który odbija ten sznurek, aby uzyskać pełny kort tenisowy.Teraz pozostaje tylko wydrukować, co robi
"
postać.źródło
Powłoka Unix; używając dc i tr; 55 bajtów: (Optymalizacja rozwiązania Mitchell Spector)
Inne rozwiązania: Korzystanie z sed; 81 bajtów;
Korzystanie z funkcji DC w funkcji: 88 bajtów
lub
Używanie bc w funkcji: 99 bajtów
źródło
PowerShell, 56 bajtów
Wyjaśnienie: prosta połowa sądu
Alternatywnie, 68 bajtów
Objaśnienie: Sędzia stosuje te same indeksy do wyświetlania wierszy i kolumn
źródło