Problem
Odtwórz interfejs użytkownika z programu torrent
Bez danych wejściowych wypisz następujące dane:
+----------+----------+----------+
|a.exe |##########|seeding |
+----------+----------+----------+
|b.exe 10% |# |leeching |
+----------+----------+----------+
|c.exe |##########|seeding |
+----------+----------+----------+
|d.exe 20% |## |leeching |
+----------+----------+----------+
|e.exe |##########|seeding |
+----------+----------+----------+
|f.exe 30% |### |leeching |
+----------+----------+----------+
|g.exe |##########|seeding |
+----------+----------+----------+
|h.exe 40% |#### |leeching |
+----------+----------+----------+
|i.exe |##########|seeding |
+----------+----------+----------+
|j.exe 50% |##### |leeching |
+----------+----------+----------+
|k.exe |##########|seeding |
+----------+----------+----------+
|l.exe 60% |###### |leeching |
+----------+----------+----------+
|m.exe |##########|seeding |
+----------+----------+----------+
|n.exe 70% |####### |leeching |
+----------+----------+----------+
|o.exe |##########|seeding |
+----------+----------+----------+
|p.exe 80% |######## |leeching |
+----------+----------+----------+
|q.exe |##########|seeding |
+----------+----------+----------+
|r.exe 90% |######### |leeching |
+----------+----------+----------+
|s.exe |##########|seeding |
+----------+----------+----------+
|t.exe |##########|seeding |
+----------+----------+----------+
|u.exe |##########|seeding |
+----------+----------+----------+
|v.exe |##########|seeding |
+----------+----------+----------+
|w.exe |##########|seeding |
+----------+----------+----------+
|x.exe |##########|seeding |
+----------+----------+----------+
|y.exe |##########|seeding |
+----------+----------+----------+
|z.exe |##########|seeding |
+----------+----------+----------+
postępy w programach są:
b=10% d=20% f=30% h=40% j=50% l=60% n=70% p=80% r=90%
ilość #
programów dla pijawek wynosiprogress/10
reszta ma seeding
pełne paski postępu.
Zasady
- Wiodące i końcowe znaki nowej linii są dozwolone.
- Dopuszczalne i wiodące spacje są dozwolone, o ile nie zmieniają kształtu wyniku.
- standardowe wyjście i funkcje dla wyjścia dozwolone.
- Najkrótszy kod w bajtach wygrywa
code-golf
string
ascii-art
kolmogorov-complexity
LiefdeWen
źródło
źródło
.exe
z torrentów nie jest najmądrzejszą rzeczą do zrobienia, co?f.exe
nie mogę znaleźć jego kopii nigdzie indziej.f.exe
pochodzi zf_readme.txt
napisem „uruchom jako administrator”. Wydaje się legit.Odpowiedzi:
Węgiel,
988583 bajtówMyślałem, że skopiowanie szablonu pozwoli mi zaoszczędzić sporo kodu, ale wszystko wydaje się w jakiś sposób sumować, chociaż udało mi się zapisać 13 bajtów za pomocą pojedynczej pętli, aby naprawić 9 wierszy pijawek. Wyjaśnienie:
(Uwaga dodatkowa: Wydaje mi się, że odkryłem błąd w Charcoal;
|
jest postacią ASCII, ale dla celów tego też jest liczony jako strzałkaMultiprint
, więc nie możesz tegoMultiprint
zrobić).źródło
Perl 5 , 130 bajtów
Wypróbuj online!
Oczekuję, że istnieje kilka bajtów, które można zagrać w golfa, ale zabrakło mi inspiracji.
Krótkie wyjaśnienia:
$e
zawiera linię separacji (+----------+----------+----------+
); jego konstrukcja jest prosta (("+"."-"x10)x3 ."+\n"
).Następnie przeglądam znaki od
a
doz
:Za każdym razem drukuj
"|$_.exe%4s |%-10s|%-9s |\n$e
; jest to standardprintf
z symbolami zastępczymi dla łańcuchów (%s
) i łańcuchów lewych (%-9s
).jeśli
$|--&&$@++<9
jest prawdą ($|
jest specjalną zmienną zawierającą 0 lub 1, a jej zmniejszenie zmienia wartość), to wartość procentowa nie wynosi 100%, a trzy wartości na wydruku są"$@0%","#"x$@,leeching
($@0%
tak naprawdę$@ . "0" . "%"
- pamiętaj, że$@
została zwiększona wcześniej) , w przeciwnym razie trzy wartości to"","#"x10,seeding
).źródło
Python 2 ,
182177 bajtówDzięki @officialaimm za golenie 5 bajtów poprzez zmianę formatu warunku.
Wypróbuj online!
źródło
SOGL V0.12 ,
908988 bajtówWypróbuj tutaj!
Wyjaśnienie:
źródło
JavaScript,
232230228226 bajtówPróbny
Pokaż fragment kodu
źródło
s
ip
ustawiając domyślne parametry funkcji, eliminując potrzebę()
s wokół ciała funkcji: Fiddle${x?'leeching ':'seeding '}|
na następujące${x?'leeching':'seeding '} |
:?PHP , 179 bajtów
bez wkładu
Wypróbuj online!
PHP , 176 bajtów
z wejściem
Wypróbuj online!
źródło
++
z++$x&1
(-2), użyj$y=++$x%4|$z>9?"":++$z."0%"
jako drugiegoprintf
parametru (-9) i wstaw$z
przed:10
(+2)Python 3 , 255 bajtów
Jestem pewien, że można to zagrać w golfa, aktualizacja wkrótce:
Wypróbuj online!
źródło
leeching |
iseeding |
czy nie możesz go zmienić naleeching
iseeding
+" |"
?//2*10
jest sprawiedliwy*5
i10-(z-96)//2
sprawiedliwy58-z//2
.Rubin , 141 bajtów
Wypróbuj online!
źródło
Java (OpenJDK 8) ,
244229228227226224222218217 bajtówWypróbuj online!
-2 bajty dzięki @KevinCruijssen!
źródło
leeching
iseeding
są wyrównane do prawej..format
i0%
, +1! Btw, możeszs=z
o->{String x="----------+",z="+"+x+x+x,s=z;for(int c=96,p;++c<123;)s+=s.format("%n|%c.exe %3s |%-10s|%-10s|%n"+z,c,(p=(c%2>0|c/2-48>10)?10:c/2-48)<10?p+"0%":"","##########".substring(0,p),p<10?"leeching":"seeding");return s;}
Python 2 ,
172170162 bajtów-8 bajtów dzięki Lynn
Wypróbuj online!
źródło
Braingolf ,
673655 bajtówWypróbuj online!
Powiedziałem to wcześniej i powtórzę: Braingolf jest zły w sztuce ASCII.
Przynajmniej jest to tylko 1/3 bajtów, które zajęłoby zakodowanie danych wyjściowych
źródło
V , 107 bajtów
Wypróbuj online!
Hexdump:
źródło
Japt , 121 bajtów
Wypróbuj online!
źródło
Japt , 98 bajtów
Nie działa w najnowszej wersji z powodu błędu, że bałagan
4î+
,q-p10
iq|
, ale to działa w popełnieniaf619c52
. Przetestuj online!źródło
T-SQL, 238 bajtów
Rozwiązanie proceduralne, sformatowane:
Wszystko w pętli (aż do SET) jest częścią tej samej instrukcji PRINT, w tym podział wiersza wewnątrz pierwszego literału łańcucha.
Pracuję nad rozwiązaniem opartym na zestawie (utwórz i wypełnij tabelę, a następnie wybierz z niej WYBIERZ), ale nie jestem pewien, czy będzie ona mniejsza, czy nie.
źródło
Java 8,
271263262 bajtówWszystkie te problemy za nic ..>.>;)
( Krótsza odpowiedź Java autorstwa @ OliverGrégoire .)
Wyjaśnienie:
Wypróbuj tutaj.
źródło
char
zamiastint
w pętli. Pozwala ci to nie rzucać go później.t
można zainicjować i ponownie zainicjować do zera, a+=
następnie. Powinno być jeszcze krótsze.int
i(char)
&t=...;
vschar
&{t=1;t*=...;}
. Chyba że coś mi umknie.Zwykły TeX, 306 bajtów
Ungolfed z kilkoma wyjaśnieniami:
źródło
05AB1E , 120 bajtów
Wypróbuj online!
Jest o wiele za dużo gry w golfa, opublikuję wyjaśnienie, gdy będę miał mniej niż 90 bajtów.
źródło
Stax ,
536864 bajtówUruchom i debuguj
Po rozpakowaniu i bez golfa wygląda to tak.
Pamiętaj, że jeśli użyjesz przycisku „Golf” do usunięcia białych znaków i komentarzy z rozwiniętego rozwiązania, niepoprawnie podwoi to
}
. Jeśli usuniesz dodatkowy znak, będzie on nadal działał poprawnie.źródło
C (gcc) ,
217211 bajtów-6 bajtów dzięki pułapkowi cat
Wypróbuj online!
źródło
/// , 264 bajtów
Wypróbuj online!
Działa poprzez zdefiniowanie zestawu zamienników i użycie ich do zastąpienia większej liczby znaków niż są.
źródło
Mathematica, 274 bajty
źródło
Węgiel ,
154 149 143 130103 bajtówWypróbuj online! (Link do pełnej wersji.)
źródło
\\r
: Wypróbuj online! . Zauważ, że wstawiłem fikcyjne operacje, ponieważ nie otrzymuję żadnych separatorów.\r
sztuczce, nie wiedziałem o tym.Bubblegum , 150 bajtów
Wypróbuj online!
źródło
Perl6,
225219źródło
Lua, 380 bajtów
Używa
gsub
do tworzenia dzielników rzędów i rzędów wysiewu.l
generuje rzędy pijawek. Zmiana nazwygsub
irep
zapisywanie większej liczby bajtów.źródło
Jstx , 126 bajtów
Wypróbuj online!
Wyjaśnienie
Jestem pewien, że może to być znacznie krótsze.
źródło
/// , 226 bajtów
Wypróbuj online!
Nieco bardziej wyrafinowane podejście do definiowania zamienników. Wypróbuj interaktywnie tutaj!
źródło
Pascal (FPC) ,
294286266263 bajtówWypróbuj online!
Więc ... Skończyło się na tym, że zarówno nowa, jak i ostatnia linia: D
źródło
PowerShell ,
224210181174169160 bajtówWypróbuj online!
Teraz 64 bajty mniej okropne
Kilka ciekawych sztuczek: łączenie wielu „$ (rzeczy)”, aby zaoszczędzić na parens. Chcemy tylko liczb nieparzystych, co daje $ _% 2 = 1, więc nie potrzebujemy do tego -eq. Teraz używa indeksowania list zamiast if-else, aby zapisać 5 bajtów. Pozbywa się także n dla innego bajtu. Nie mogłem dostać „$ c'0%” do oddzielenia var i zero, więc bieżąca trasa była o 1 bajt krótsza niż sklejenie dwóch łańcuchów razem. Teraz z formatowaniem -f.
źródło