Problem
Erstellen Sie die Benutzeroberfläche aus einem Torrent-Programm neu
Wenn keine Eingabe erfolgt, geben Sie Folgendes aus:
+----------+----------+----------+
|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 |
+----------+----------+----------+
Fortschritte für Programme sind:
b=10% d=20% f=30% h=40% j=50% l=60% n=70% p=80% r=90%
Menge von #
's für Blutegelprogramme istprogress/10
Der Rest ist seeding
mit vollen Fortschrittsbalken versehen.
Regeln
- Führende und nachfolgende Zeilenumbrüche sind erlaubt.
- Führende und nachfolgende Leerzeichen sind zulässig, solange sich die Form der Ausgabe nicht ändert.
- Standardausgabe und Funktionen für die Ausgabe erlaubt.
- Kürzester Code in Bytes gewinnen
code-golf
string
ascii-art
kolmogorov-complexity
LiefdeWen
quelle
quelle
.exe
von Torrents nicht das beste ist?f.exe
kann nirgendwo anders eine Kopie finden.f.exe
kommt mitf_readme.txt
dem Spruch "Als Administrator ausführen". Klingt plausibel.Antworten:
Charcoal,
988583 BytesIch dachte, das Kopieren einer Vorlage würde mir eine Menge Code sparen, aber es scheint sich alles irgendwie zu summieren, obwohl ich es geschafft habe, 13 Bytes zu sparen, indem ich eine einzelne Schleife verwendet habe, um die 9 Leeching-Zeilen zu reparieren. Erläuterung:
(Randnotiz: Ich habe anscheinend einen Fehler in Charcoal entdeckt;
|
ist ein ASCII-Zeichen, aber es wird auch als Pfeil für die Zwecke von gezähltMultiprint
, sodass Sie es nichtMultiprint
können.)quelle
Perl 5 , 130 Bytes
Probieren Sie es online!
Ich gehe davon aus, dass ein paar Bytes zum Golfen zur Verfügung stehen, aber mir ist die Inspiration ausgegangen.
Kurze Erläuterungen:
$e
enthält die Trennlinie (+----------+----------+----------+
); Die Konstruktion ist einfach (("+"."-"x10)x3 ."+\n"
).Dann durchlaufe ich die Zeichen von
a
bisz
:Jedes Mal drucken
"|$_.exe%4s |%-10s|%-9s |\n$e
; Dies ist ein Standardprintf
mit Platzhaltern für Strings (%s
) und links aufgefüllte Strings (%-9s
).Wenn
$|--&&$@++<9
true ist ($|
ist eine spezielle Variable, die entweder 0 oder 1 enthält und deren Wert durch Verringern umgeschaltet wird), dann ist der Prozentsatz nicht 100% und die drei Werte im Ausdruck sind"$@0%","#"x$@,leeching
($@0%
eigentlich nur$@ . "0" . "%"
- denken Sie daran, dass sie$@
früher erhöht wurden) Ansonsten sind die drei Werte"","#"x10,seeding
).quelle
Python 2 ,
182177 BytesVielen Dank an @officialaimm für das Abschneiden von 5 Bytes durch Ändern des Formats der Bedingung.
Probieren Sie es online!
quelle
SOGL V0.12 ,
908988 BytesProbieren Sie es hier aus!
Erläuterung:
quelle
Javascript,
232230228226 BytesDemo
Code-Snippet anzeigen
quelle
s
undp
zu den Standardfunktionsparametern, wodurch die Notwendigkeit von()
s um den Funktionskörper herum beseitigt wird: Fiddle${x?'leeching ':'seeding '}|
zu Folgendem wechseln${x?'leeching':'seeding '} |
:?PHP , 179 Bytes
ohne Eingabe
Probieren Sie es online!
PHP , 176 Bytes
mit Eingabe
Probieren Sie es online!
quelle
++
von++$x&1
(-2), verwende$y=++$x%4|$z>9?"":++$z."0%"
als zweitenprintf
Parameter (-9) und füge$z
vor:10
(+2) einPython 3 , 255 Bytes
Ich bin mir sicher, dass dies in Kürze aktualisiert werden kann:
Probieren Sie es online!
quelle
leeching |
undseeding |
inleeching
und ändernseeding
+" |"
?//2*10
gerecht*5
und10-(z-96)//2
ist gerecht58-z//2
.Ruby , 141 Bytes
Probieren Sie es online!
quelle
Java (OpenJDK 8) ,
244229228227226224222218217 BytesProbieren Sie es online!
-2 Bytes dank @KevinCruijssen!
quelle
leeching
undseeding
seid richtig ausgerichtet..format
und0%
, +1! Übrigens, Sie können Ihre Antwort noch ein wenig weiters=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 Bytes-8 Bytes dank Lynn
Probieren Sie es online!
quelle
Braingolf ,
673655 BytesProbieren Sie es online!
Ich habe es schon einmal gesagt und ich sage es noch einmal: Braingolf ist schlecht in ASCII-Kunst.
Zumindest ist dies nur ein Drittel der Bytes, die benötigt würden, um die Ausgabe tatsächlich fest zu codieren
quelle
V , 107 Bytes
Probieren Sie es online!
Hexdump:
quelle
Japt , 121 Bytes
Probieren Sie es online!
quelle
Japt , 98 Bytes
Funktioniert in der neuesten Version nicht, da ein Fehler auftritt, der zu Problemen
4î+
führtq-p10
, undq|
, aber es funktioniert in Commitf619c52
. Online testen!quelle
T-SQL, 238 Bytes
Verfahrenslösung, formatiert:
Alles in der Schleife (bis zum SET) ist Teil derselben PRINT-Anweisung, einschließlich eines Zeilenumbruchs im ersten Zeichenfolgenliteral.
Ich arbeite an einer satzbasierten Lösung (erstelle eine Tabelle und fülle sie auf, dann wähle sie aus), bin mir aber nicht sicher, ob sie kleiner wird oder nicht.
quelle
Java 8,
271263262 BytesAll diese Probleme für nichts ..>.>;)
( Kürzere Java-Antwort von @ OliverGrégoire .)
Erläuterung:
Probieren Sie es hier aus.
quelle
char
anstelle von aint
in der Schleife. Sie können es später nicht mehr wirken.t
kann initialisiert und auf Null und+=
danach neu initialisiert werden. Es sollte noch kürzer sein.int
&(char)
&t=...;
vschar
&{t=1;t*=...;}
. Es sei denn, ich vermisse etwas.Plain TeX, 306 Bytes
Ungolfed mit einigen Erklärungen:
quelle
05AB1E , 120 Bytes
Probieren Sie es online!
Hier gibt es viel zu viel zu golfen. Eine Erklärung wird veröffentlicht, wenn ich unter 90 Bytes bin.
quelle
Stax ,
536864 BytesFühren Sie es aus und debuggen Sie es
Ausgepackt und ungolfed sieht es so aus.
Beachten Sie, dass, wenn Sie die Schaltfläche "Golf" verwenden, um Leerzeichen und Kommentare aus der erweiterten Lösung zu entfernen, das Symbol fälschlicherweise verdoppelt wird
}
. Wenn Sie das zusätzliche Zeichen entfernen, funktioniert es weiterhin ordnungsgemäß.quelle
C (gcc) ,
217211 Bytes-6 bytes dank ceilingcat
Probieren Sie es online!
quelle
/// , 264 Bytes
Probieren Sie es online!
Definiert eine Reihe von Ersetzungen und ersetzt damit mehr Zeichen als sie sind.
quelle
Mathematica, 274 Bytes
quelle
Charcoal ,
154 149 143 130103 BytesProbieren Sie es online! (Link zur ausführlichen Version.)
quelle
\\r
: Probieren Sie es online aus! . Beachten Sie, dass ich Dummy-Operationen eingefügt habe, weil ich keine Trennzeichen erhalte.\r
Trick, das wusste ich nicht.Bubblegum , 150 Bytes
Probieren Sie es online!
quelle
Perl6,
225219quelle
Lua, 380 Bytes
Dient
gsub
zum Erstellen der Zeilenteiler und der Seeding-Zeilen.l
erzeugt die Blutegelreihen. Umbenennengsub
undrep
spart mehr Bytes.quelle
Jstx , 126 Bytes
Probieren Sie es online!
Erläuterung
Ich bin sicher, das kann deutlich kürzer werden.
quelle
/// 226 Bytes
Probieren Sie es online!
Ein etwas ausgefeilterer Ansatz zur Definition von Ersetzungen. Probieren Sie es hier interaktiv aus!
quelle
Pascal (FPC) ,
294286266263 BytesProbieren Sie es online!
Also ... habe ich am Ende sowohl den führenden als auch den nachfolgenden Zeilenumbruch erhalten: D
quelle
PowerShell ,
224210181174169160 ByteProbieren Sie es online!
Jetzt 64 Bytes weniger schrecklich
Einige nette Tricks: Kombiniere eine Menge "$ (Zeugs)", um bei den Eltern zu sparen. Wir wollen nur ungerade Zahlen, was $ _% 2 = 1 ergibt, also brauchen wir kein -eq dafür. Verwendet jetzt die Listenindizierung anstelle eines If-else, um 5 Bytes zu sparen. Entfernt auch ein `n für ein anderes Byte. Ich konnte "$ c`0%" nicht dazu bringen, var und Null zu trennen, daher war die aktuelle Route 1 Byte kürzer als das Zusammenkleben zweier Zeichenfolgen. Jetzt mit -f Formatierung.
quelle