Problème
Recréez l'interface utilisateur à partir d'un programme torrent
En l'absence d'entrée, sortez les éléments suivants:
+----------+----------+----------+
|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 |
+----------+----------+----------+
les progrès des programmes sont les suivants:
b=10% d=20% f=30% h=40% j=50% l=60% n=70% p=80% r=90%
la quantité de #
pour les programmes de sangsue estprogress/10
les autres sont tous seeding
dotés de barres de progression complètes.
Règles
- Les nouvelles lignes de début et de fin sont autorisées.
- Les espaces de début et de fin sont autorisés tant qu'ils ne changent pas la forme de la sortie.
- stdout et fonctions de sortie autorisées.
- Code le plus court en octets gagnant
code-golf
string
ascii-art
kolmogorov-complexity
LiefdeWen
la source
la source
.exe
depuis des torrents n'est pas la chose la plus brillante à faire, hein?f.exe
ne peux pas en trouver une copie ailleurs.f.exe
vient avecf_readme.txt
qui dit, "exécuter en tant qu'administrateur". Semble légitime.Réponses:
Fusain,
988583 octetsJe pensais que la copie d'un modèle me ferait économiser beaucoup de code mais tout semble s'additionner d'une manière ou d'une autre, même si j'ai réussi à économiser 13 octets en utilisant une seule boucle pour corriger les 9 lignes de sangsue. Explication:
(Remarque: je semble avoir découvert un bogue dans Charcoal;
|
est un caractère ASCII, mais il est également compté comme une flèche aux fins deMultiprint
, donc vous ne pouvez pasMultiprint
.)la source
Perl 5 , 130 octets
Essayez-le en ligne!
Je m'attends à ce qu'il y ait quelques octets qui peuvent être joués, mais j'ai manqué d'inspiration.
Explications courtes:
$e
contient la ligne de séparation (+----------+----------+----------+
); sa construction est simple (("+"."-"x10)x3 ."+\n"
).Ensuite, je passe en boucle les caractères de
a
àz
:Chaque fois, j'imprime
"|$_.exe%4s |%-10s|%-9s |\n$e
; il s'agit d'une normeprintf
avec des espaces réservés pour les chaînes (%s
) et les chaînes remplies à gauche (%-9s
).si
$|--&&$@++<9
est vrai ($|
est une variable spéciale qui contient 0 ou 1, et sa décrémentation bascule sa valeur), alors le pourcentage n'est pas 100%, et les trois valeurs dans l'impression sont"$@0%","#"x$@,leeching
($@0%
est en fait juste$@ . "0" . "%"
- rappelez-vous que cela a$@
été incrémenté plus tôt) sinon, les trois valeurs sont"","#"x10,seeding
).la source
Python 2 ,
182177 octetsMerci à @officialaimm d'avoir rasé 5 octets en changeant le format de la condition.
Essayez-le en ligne!
la source
SOGL V0.12 ,
908988 octetsEssayez-le ici!
Explication:
la source
Javascript,
232230228226 octetsDémo
Afficher l'extrait de code
la source
s
etp
par défaut des paramètres de fonction, en supprimant la nécessité de()
s autour du corps de la fonction: Fiddle${x?'leeching ':'seeding '}|
comme suit${x?'leeching':'seeding '} |
:?PHP , 179 octets
sans entrée
Essayez-le en ligne!
PHP , 176 octets
avec entrée
Essayez-le en ligne!
la source
++
de++$x&1
(-2), utiliser$y=++$x%4|$z>9?"":++$z."0%"
comme deuxièmeprintf
paramètre (-9) et insérer$z
avant:10
(+2)Python 3 , 255 octets
Je suis sûr que cela peut être joué, mise à jour bientôt:
Essayez-le en ligne!
la source
leeching |
etseeding |
, ne pouvez-vous pas le changer enleeching
etseeding
+" |"
?//2*10
c'est juste*5
et10-(z-96)//2
c'est juste58-z//2
.Rubis , 141 octets
Essayez-le en ligne!
la source
Java (OpenJDK 8) ,
244229228227226224222218217 octetsEssayez-le en ligne!
-2 octets grâce à @KevinCruijssen!
la source
leeching
etseeding
sont alignés à droite..format
et0%
, +1! Btw, vous pouvez jouer un peu plus à votre réponse en commençant par à las=z
place, comme ceci: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;}
( 225 octets )Python 2 ,
172170162 octets-8 octets grâce à Lynn
Essayez-le en ligne!
la source
Braingolf ,
673655 octetsEssayez-le en ligne!
Je l'ai déjà dit et je le redis: Braingolf est mauvais en art ASCII.
Au moins, cela ne représente que 1/3 des octets nécessaires pour coder en dur la sortie
la source
V , 107 octets
Essayez-le en ligne!
Hexdump:
la source
Japt , 121 octets
Essayez-le en ligne!
la source
Japt , 98 octets
Ne fonctionne pas dans la dernière version en raison d'un bug qui salit
4î+
,q-p10
etq|
, mais il fonctionne à commettref619c52
. Testez-le en ligne!la source
T-SQL, 238 octets
Solution procédurale, formatée:
Tout dans la boucle (jusqu'au SET) fait partie de la même instruction PRINT, y compris un saut de ligne à l'intérieur du premier littéral de chaîne.
Je travaille sur une solution basée sur un ensemble (créer et remplir une table, puis sélectionner à partir d'elle), mais je ne sais pas si elle va être plus petite ou non.
la source
Java 8,
271263262 octetsTous ces ennuis pour rien ..>.>;)
( Réponse Java plus courte par @ OliverGrégoire .)
Explication:
Essayez-le ici.
la source
char
au lieu d'unint
dans la boucle. Il vous permet de ne pas le lancer plus tard.t
peut être initialisé et réinitialisé à zéro et+=
ensuite. Il devrait être encore plus court.int
&(char)
&t=...;
vschar
&{t=1;t*=...;}
. A moins que je manque quelque chose.TeX ordinaire, 306 octets
Non golfé avec quelques explications:
la source
05AB1E , 120 octets
Essayez-le en ligne!
Il y a beaucoup trop de golf à faire ici, affichera une explication lorsque je serai en dessous de 90 octets.
la source
Stax ,
536864 octetsExécuter et déboguer
Déballé et non golfé, il ressemble à ceci.
Notez que si vous utilisez le bouton "Golf" pour supprimer les espaces et les commentaires de la solution développée, il double incorrectement le
}
. Si vous supprimez le caractère supplémentaire, il continue de fonctionner correctement.la source
C (gcc) ,
217211 octets-6 octets grâce au plafond
Essayez-le en ligne!
la source
/// , 264 octets
Essayez-le en ligne!
Fonctionne en définissant un tas de remplacements et en les utilisant pour remplacer plus de caractères qu'ils ne le sont.
la source
Mathematica, 274 octets
la source
Fusain ,
1541491431330103octetsEssayez-le en ligne! (Lien vers la version détaillée.)
la source
\\r
: Essayez-le en ligne! . Notez que j'ai inséré des opérations factices car je n'obtiens aucun séparateur.\r
astuce, je ne le savais pas.Bubblegum , 150 octets
Essayez-le en ligne!
la source
Perl6,
225219la source
Lua, 380 octets
Permet
gsub
de créer les séparateurs de lignes et les lignes de départ.l
génère les rangées de sangsues. Renommergsub
etrep
enregistre plus d'octets.la source
Jstx , 126 octets
Essayez-le en ligne!
Explication
Je suis sûr que cela peut devenir beaucoup plus court.
la source
/// , 226 octets
Essayez-le en ligne!
Une approche un peu plus sophistiquée pour définir les remplacements. Essayez-le interactivement ici!
la source
Pascal (FPC) ,
294286266263 octetsEssayez-le en ligne!
Donc ... je me suis retrouvé avec une nouvelle ligne de tête et de fin: D
la source
PowerShell ,
224210181174169160 octetsEssayez-le en ligne!
Maintenant 64 octets de moins terrible
Quelques astuces: combiner beaucoup de "$ (stuff)" pour économiser sur les parens. Nous voulons seulement des nombres impairs qui font $ _% 2 = 1 donc nous n'avons pas besoin d'un -eq pour cela. Utilise désormais l'indexation de liste au lieu d'un if-else pour économiser 5 octets. Supprime également un `n pour un autre octet. Je n'ai pas pu obtenir "$ c`0%" pour séparer le var et le zéro, donc l'itinéraire actuel était 1 octet plus court que de coller deux chaînes ensemble. Maintenant avec le formatage -f.
la source