토런트 UI 용 ASCII 아트


30

문제

토렌트 프로그램에서 UI 재생성

입력이 없으면 다음을 출력하십시오.

+----------+----------+----------+
|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   |
+----------+----------+----------+

프로그램 진행률은 다음과 같습니다.

b=10% d=20% f=30% h=40% j=50% l=60% n=70% p=80% r=90%

#거머리 프로그램의 양은progress/10

나머지는 모두 seeding전체 진행 표시 줄이 있습니다.

규칙

  • 선행 및 후행 줄 바꿈이 허용됩니다.
  • 출력 형태가 변경되지 않는 한 선행 및 후행 공백이 허용됩니다.
  • stdout 및 출력 허용 기능.
  • 바이트 단위의 최단 코드

5
.exe급류에서 다운로드 하는 것이 가장 밝은 일이 아니라는 것을 알고 있습니까?
RobAu

14
@RobAu 다른 방법으로 다른 f.exe곳에서 사본을 찾을 수 없습니다.
LiefdeWen

9
f.exe함께 제공 f_readme.txt즉 "관리자 권한으로 실행"라고 말한다. 합법적 인 것 같습니다.
Magic Octopus Urn

@RobAu 몰랐다. 나는 정기적으로 리눅스 배포판을 다운로드하는데, 여기에는 부트 로더를 설치하고 토런트와 함께 일부를 포함하는 실행 파일이 포함되어있다!
Pascal Cuoq

답변:


5

숯, 98 85 83 바이트

F³B⁻³⁴×¹¹ι³M↘ .exeM⁶→×#χ|seeding⸿F²⁵C⁰¦²↗Fβ↓⁺ι-F⁹«J⁷⁺³×⁴ι⁺⁺ι¹0% |#P⁺× ⁹|leeching×#ι

템플릿을 복사하면 많은 코드를 절약 할 수 있다고 생각했지만 9 개의 거머리 행을 수정하기 위해 단일 루프를 사용하여 13 바이트를 절약 할 수 있었지만 모두 어쨌든 더해 보입니다. 설명:

F³B⁻³⁴×¹¹ι³             Make the top row of boxes
M↘ .exeM⁶→×#χ|seeding⸿  Print .exe, the 10 #s and seeding
F²⁵C⁰¦²                 Make 25 copies of the boxes
↗Fβ↓⁺ι-                 Put the letters in at the start
F⁹«                     For the 9 leeching files
   J⁷⁺³×⁴ι              Move the cursor to the percentage column
   ⁺⁺ι¹0% |#            Print the percentage and the first # of progress
   P⁺× ⁹|leeching       Erase the rest of the progress and change the status
   ×#ι                  Print the desired amount of progress

(Side note : Charcoal에서 버그를 발견 한 것 같습니다 |.ASCII 문자이지만의 목적으로 화살표로 계산 Multiprint되므로 사용할 수 없습니다 Multiprint.)


버그
가 아니라

@ ASCII-only 아 아, 슬프게도 deverbosifier는 그것을 모른다.
Neil

사실, 상기시켜 주셔서 감사합니다
ASCII 전용

12

펄 5 , 130 바이트

print$e=("+"."-"x10)x3 ."+
";printf"|$_.exe%4s |%-10s|%-9s |
$e",$|--&&$@++<9?("$@0%","#"x$@,leeching):("","#"x10,seeding)for a..z

온라인으로 사용해보십시오!

골프를 칠 수있는 몇 바이트가있을 것으로 기대하지만 영감이 부족합니다.

간단한 설명 :
$e분리선 ( +----------+----------+----------+)을 포함합니다 . 그것의 구조는 간단하다 ( ("+"."-"x10)x3 ."+\n").
그런 다음에서 문자를 통해 I 루프 az:
때마다, 인쇄 "|$_.exe%4s |%-10s|%-9s |\n$e; 이것은 printf문자열 ( %s) 및 왼쪽 여백 문자열 ( %-9s)에 대한 자리 표시자가 있는 표준 입니다 .
경우에 $|--&&$@++<9사실 ( $|0 또는 1이 포함 된 특수 변수이며, 그것의 가치를 전환 감소시키는), 그 비율이 100 %되지이며, 인쇄에있는 3 개 개의 값은 "$@0%","#"x$@,leeching( $@0%실제로는 그냥 $@ . "0" . "%"- 기억 그 $@이전 증가했다) 그렇지 않으면 세 값은 "","#"x10,seeding)입니다.


6

파이썬 (2) , 182 (177) 바이트

조건의 형식을 변경하여 5 바이트를 줄인 @officialaimm에게 감사합니다.

r=("+"+10*"-")*3+"+"
for i in range(26):z=i/2+1;print r+"\n|"+chr(97+i)+".exe "+["    |"+10*"#"+"|seeding ",`10*z`+"% |"+z*"#"+(10-z)*" "+"|leeching"][i%2and i<19]+"  |"
print r

온라인으로 사용해보십시오!



1
좋은! 나는 몇 번 그것을 보았지만이 인스턴스에서 그것을 사용하지는 않았다. 솔루션으로 답변을 업데이트 할 수 있습니까?
Fedone

물론 업데이트 할 수 있습니다. ;)
officialaimm


6

SOGL V0.12 , 90 89 88 바이트

ēz{L┌* +3ΟQķ|;o".exe ”oēI»L*"% |”e» #*lLκ@*"┌5%8'Ω⅞█≡θ¹‘++++e'³>e2\+?X"⅓m÷Ko→∆)№(¤^▒«‘}o

여기 사용해보십시오!

설명:

ē                                 push variable E (default = input, which default is 0) and increase it after (next ē call will result in 1, or next e call - 2)
 z{                               iterate over the lowercase alphabet
   L┌*                            push 10 dashes
       +                          push "+"
        3Ο                        encase 3 copies of the dashes in pluses
          Q                       output in a new line, without popping and without disabling auto-output
           ķ|                     output in a new line "|"
             ;o                   output the current iteration (the alphabet letter)
               ".exe ”o           output ".exe "
                       ē          push E and increase the variable after
                        I         increase it
                         5*       multiply by 5 (every 2 ē calls this gets called)
                           "% |”  push "% |"

e»                                  push (E)/2
   #*                               get that mant "#"s
     l                              get the length of that string
      Lκ                            push 10-length
        @*                          push that many spaces
          "..‘                      push "|leeching  |"
              ++++                  add all those strings on the stack together ((e+1)*5, "% |", "#..#", " .. ", "|leeching |") (done this way to leave the "+-+-+-+" on the stack)
                  e'³>              push e>19
                      e2\           push e divides by 2
                         +          add together (here works like OR)
                          ?         if that then
                           X          remove the added-together string
                            "..‘      push "    |##########|seeding   |"
                                }   END
                                 o  output POP (either the added string or full/seeding version)
implicitly output POP (since none of tTpP were called), which is the separator line

SOGL이 뛰고 ... 숯?!
Mr. Xcoder 2016 년

1
@ Mr.Xcoder 가장 일반적인 시나리오 imo입니다.
Outgolfer Erik

왜 공감해야합니까?
dzaima 2016 년

4

자바 스크립트, 232 230 228 226 바이트

(s='+----------'.repeat(3),p=0)=>[...'abcdefghijklmnopqrstuvwxyz'].map((c,i)=>(b=i%2,p=b?p+10:p,x=b&p<91,`${s}+'
|${c}.exe ${x?p+'%':'   '} |${'#'.repeat(x?p/10:10).padEnd(10)}|${x?'leeching':'seeding '}  |`)).join`
`+`
${s}+`
  • @Stephen S 덕분에 -2 바이트-기본 기능 매개 변수 사용
  • OP 덕분에 -2 바이트-일부 공간 교체
  • @Shaggy 덕분에 -2 바이트-구조화 알파벳 문자열

데모


마지막 줄이 없습니다. 또한 제출과 코드 조각이 다릅니다. 예를 들어 "가려움증"이 제출에서 누락되었습니다.
얽히고 설킨

@Shaggy 답변 업데이트 됨-팔로우 해 주셔서 감사합니다
Weedoze

함수 본문 주위에서 s 의 필요성을 제거하고 기본 함수 매개 변수 로 이동 s하여 -2 바이트 : Fiddlep()
Stephen

잘 모르겠지만 ${x?'leeching ':'seeding '}|다음으로 변경할 수 없습니다 . ${x?'leeching':'seeding '} |?
LiefdeWen

@LiefdeWen 당신이 맞아요! 감사합니다
Weedoze 2016 년

3

PHP , 179 바이트

입력없이

for($a=a;$x<53;++$x&1?:$a++)printf($x&1?"
|$a.exe%4s |%-10s|%-10s|
":str_pad("",34,"+----------"),($y=$x%4>2&$x<36?++$z:"")?$y."0%":"",str_repeat("#",$y?:10),$y?leeching:seeding);

온라인으로 사용해보십시오!

PHP , 176 바이트

입력

for($a=a;$x<53;)printf($x&1?"
|$a.exe%4s |%-10s|%-10s|
":str_pad("",34,"+----------"),($y=strstr($argn,++$x&1?:$a++)[2])?$y."0%":"",str_repeat("#",$y?:10),$y?leeching:seeding);

온라인으로 사용해보십시오!


첫 번째 버전에서 9 바이트 저장 : (-2) ++에서 제거 ++$x&1, $y=++$x%4|$z>9?"":++$z."0%"두 번째 printf매개 변수 (-9)로 사용 및 (+2) $z이전에 삽입:10
Titus

2

파이썬 3 , 255 바이트

이것이 골프를 칠 수 있다고 확신합니다. 곧 업데이트됩니다.

e,l='.exe ',('+'+10*'-')*3+"+";print(l)
for i in zip(['|'+chr(z)+e+'    |'+"#"*10+'|seeding   |'if z%2or z>115else'|'+chr(z)+e+str((z-96)//2*10)+'% |'+(z-96)//2*"#"+(10-(z-96)//2)*" "+"|leeching  |"for z in range(97,123)],[l]*26):print(i[0],i[1],sep="\n")

온라인으로 사용해보십시오!


대신 leeching |하고 seeding |, 당신은으로 변경할 수 없습니다 leechingseeding +" |"?
LiefdeWen

@LiefdeWen 나는 그것이 8 바이트 더 길 것을 두려워한다 ...
Mr. Xcoder


또한, //2*10그냥 *5하고 10-(z-96)//2단지이다 58-z//2.
user202729


2

자바 (오픈 JDK 8) , 244 (229) 228 227 226 224 222 218 217 바이트

o->{String x="----------+",z="+"+x+x+x,s=z;for(int c=96,p;++c<123;s+=s.format("%n|%c.exe%4s |%-10s|%-10s|%n"+z,c,p>9?"":p+"0%","##########".substring(0,p),p>9?"seeding":"leeching"))p=(p=c/2-48)>9|c%2>0?10:p;return s;}

온라인으로 사용해보십시오!

@KevinCruijssen 덕분에 -2 바이트!


당신 leechingseeding잘 맞습니다.
LiefdeWen

와우, 빠른 코멘트! 방금 게시 한 후보고 수정하는 데 바빴습니다 : p
Olivier Grégoire

유감 nuissance을 되 고, 난 그냥 흥분보고 읽을 수있는 좋은 얻을
LiefdeWen

폐가 되는 행위? 아니, 당신은하지 않았다 :)
Olivier Grégoire

1
Dangit .. 내가 고정하고 당신이 그것에 나를 이길했습니다 내 대답에 설명을 추가 .. 그리고 34 좀 simularities를 볼 .. 내가 추가 할 수 있습니다 짧은,하지만 스마트 사용 바이트 동안 .format0%, +1! Btw, 당신은 s=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;}( 225 bytes )
Kevin Cruijssen


1

Braingolf , 673 655 바이트

9..#+[#-]#+[#-]#+[#-]"+
|"!&@V"a.exe     |"!&@V9[##]"|seeding   |
"!&@v!&@v<1+>!&@V8##[# ]"|leeching  |
"!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<$_##>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<$_##>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<$_##>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<$_##>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<$_##>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<<$_##>>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<<<$_##>>>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<<<<$_##>>>>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<<<<<$_##>>>>>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv$_!&@;

온라인으로 사용해보십시오!

나는 그것을 전에 말했고 다시 말할 것입니다 : Braingolf는 ASCII 예술에 좋지 않습니다.

적어도 이것은 실제로 출력을 하드 코딩하는 데 걸리는 바이트의 1/3에 불과합니다.


1

V , 107 바이트

¬azÓ./|&.exeò
ddÎAµ |±°#|seeding³ |
ÙÒ-4ñr+11lñddç^/P
jp4G9ñ8|R00%3l10r llRleeching4jñV{10g
çä/WylWl@"r#

온라인으로 사용해보십시오!

16 진 덤프 :

00000000: ac61 7ad3 2e2f 7c26 2e65 7865 f20a 6464  .az../|&.exe..dd
00000010: ce41 b520 7cb1 b023 7c73 6565 6469 6e67  .A. |..#|seeding
00000020: b320 7c0a d9d2 2d34 f172 2b31 316c f164  . |...-4.r+11l.d
00000030: 64e7 5e2f 500a 6a70 3447 39f1 387c 5230  d.^/P.jp4G9.8|R0
00000040: 3025 1b33 6c31 3072 206c 6c52 6c65 6563  0%.3l10r llRleec
00000050: 6869 6e67 1b34 6af1 567b 3130 6701 0ae7  hing.4j.V{10g...
00000060: e42f 5779 6c57 6c40 2272 23              ./WylWl@"r#



1

T-SQL, 238 바이트

DECLARE @ INT=1,@D CHAR(11)='+----------'L:PRINT @D+@D+@D+'+
|'+CHAR(@+96)+'.exe '+IIF(@%2=0AND
@<20,CONCAT(@/2,'0% |',REPLICATE('#',@/2),SPACE(10-@/2),'|leeching  |'),'    |##########|seeding   |')SET @+=1IF @<27GOTO L
PRINT @D+@D+@D+'+'

절차 적 솔루션, 형식 :

DECLARE @ INT=1, @D CHAR(11)='+----------'
L:
    PRINT @D + @D + @D + '+
|' + CHAR(@+96) + '.exe ' + 
    IIF(@%2=0 AND @<20, 
       CONCAT(@/2,'0% |',REPLICATE('#',@/2),SPACE(10-@/2),'|leeching  |'),
       '    |##########|seeding   |')
   SET @+=1
IF @<27 GOTO L
PRINT @D + @D + @D + '+'

루프의 모든 항목 (SET까지)은 첫 번째 문자열 리터럴 내부의 줄 바꿈을 포함하여 동일한 PRINT 문의 일부입니다.

세트 기반 솔루션 (테이블을 만들고 채운 다음 SELECT)을 사용하고 있지만 그 크기가 더 작아 질지 확실하지 않습니다.


1

자바 8, 271 263 262 바이트

o->{String a="+----------",b=a+a+a+"+\n",r=b;for(int c=96,t;++c<123;r+="|"+(char)c+".exe "+(t>0?(c/2-48)+"0%":"   ")+" |##########".substring(0,t>0?c/2-46:12)+"         |".substring(t>0?c/2-49:9)+(t>0?"leeching":"seeding ")+"  |\n"+b)t=c<115&c%2<1?1:0;return r;}

이 모든 문제는 아무것도 아닙니다 ..>.>;)
( @ OliverGrégoire의 짧은 Java 답변 )

설명:

여기에서 시도하십시오.

o->{                       // Method with unused Object parameter and String return-type
  String a="+----------",b=a+a+a+"+\n",
                           //  Temp String "+----------+----------+----------+\n"
         r=b;              //  Result-String
  for(int c=96,t;++c<123   //  Loop from 'a' to 'z':
      ;                    //    After every iteration:
       r+=                 //     Append the result-String with:
         "|"               //      A literal "|"
         +(char)c          //      + the character
         +".exe "          //      + literal ".exe "
         +(t>0?            //      If the current character is below 's' and even unicode:
           (c/2-48)+"0%"   //       + the percentage
          :                //      Else:
           "   ")          //       + the spaces
         +" |##########"   //      + the progress bar
           .substring(0,   //       By using a substring from 0 to 
             t>0?          //        If the current character is below 's' and even unicode:
              c/2-46       //         'b' = 3; 'd' = 4; 'f' = 6; etc.
             :             //        Else:
              12)          //         12 (the entire progress bar)
         +"         |"     //      + spaces after the progress bar
           .substring(     //       By using a substring from
             t>0?          //        If the current character is below 's' and even unicode:
              c/2-49       //         'b' = 0; 'd' = 1; 'f' = 2; etc.
             :             //        Else:
              9)           //         9 (all the spaces)
         +(t>0?            //      If the current character is below 's' and even unicode:
           "leeching"      //       + literal "leeching"
          :                //      Else:
           "seeding ")     //       + literal "seeding "
         +"  |\n"          //      + literal "  |" + new-line
         +b)               //      + `b` ("+----------+----------+----------+\n")
  t=c<115&c%2<1?           //   If the current character is below 's' and even unicode:
     1                     //    `t` = 1
    :                      //   Else:
     0;                    //    `t` = 0
                           //  End of loop
  return r;                //  Return the result-String
}                          // End of method

루프에서 char대신을 사용하십시오 int. 나중에 캐스팅 할 수 없습니다. t0으로 초기화 한 후 다시 초기화 할 수 있습니다 +=. 여전히 짧아야합니다.
Olivier Grégoire

@ OlivierGrégoire 실제로 2 바이트 더 깁니다. int& (char)& t=...;vs char& {t=1;t*=...;}. 내가 빠진 것이 아니라면.
Kevin Cruijssen

아니, 당신은 아무것도 빠지지 않았어요, 그건 내 생각이었습니다. 코드의 다른 부분을 고려하지 않았습니다.
Olivier Grégoire

1

일반 TeX, 306 바이트

\let\a\advance\def\b{+\r{\r-9-+}3\par}\def\s{\r~5|\r\#9\#|seeding\r~3|}\def\r#1#2{{\i0\loop#1\a\i1
\ifnum\i<#2\repeat}}\newcount\i\i`a\newcount\j\j1\tt\loop\b|\char\i.exe\ifodd\i\s\else\ifnum\i<`s\
\the\j0\%~|\r\#\j{\j-\j \a\j10 \r~\j}\a\j1|leeching\r~2|\else\s\fi\fi\endgraf\a\i1 \ifnum\i<`\{\repeat\b\bye

몇 가지 설명으로 풀리지 않습니다.

\let\a\advance
\def\b{+\r{\r-9-+}3\par}%           The bar between rows: '+' + 3*(9*'-' + '-' + '+') + '\n'
\def\s{\r~5|\r\#9\#|seeding\r~3|}%  The common part for seeding lines, similar to \b
\def\r#1#2{{%                       Macro for repeating #1 #2 times
% Note the local grouping here which is needed for nested \loops and allows us to reuse the global \i
  \i0%
  \loop
    #1%
    \a\i1 %
    \ifnum\i<#2%
   \repeat%
}}%                                 
\newcount\i \i`a%                   Counter for ASCII values of letters, start with 'a'
\newcount\j \j1%                    Counter for percentages; shorter than modulo tricks
\tt
\loop
  \b|\char\i.exe%
  \ifodd\i
    \s%                             Odd lines are seeding lines
  \else
    \ifnum\i<`s\ %                  Even line up to 'r'
      \the\j0\%~|\r\#\j%            Print percentage and progress bar
      {\j-\j \a\j10 \r~\j}%         10-\j spaces after the progress bar
      \a\j1%
      |leeching\r~2|%
    \else
      \s%                           There's no \ifeven, hence the repetition here
    \fi
  \fi
  \endgraf%                         Print '\n'. \par doesn't work here, because \loop isn't a \long macro
  \a\i1
  \ifnum\i<`\{%                     Repeat until \j <= 'z'
\repeat
\b
\bye


1

Stax , 53 68 64 바이트

â"{≤╞c~£ÿτδ¬│∙}Dgoô₧»öÖ#9▌ó♂i◘ÿkùâGCå`è╙/♠Gδb,φW0EqΔ┘δth½àJZ¿l╦#

실행 및 디버깅

포장을 풀고 포장을 풀면 다음과 같습니다.

'+'-A*+34:mQ
VaF
  '|p
  ".exe "+
  |;i^hA?X 
  $.0%+
  xA<Y*+G
  '#x*G
  `Qz/"D?d=T"`jy@G
  zP
  Q
}A(p'|p

확장 된 솔루션에서 공백과 주석을 제거하기 위해 "골프"버튼을 사용하면이 값이 두 배가 }됩니다. 추가 문자를 제거해도 계속 올바르게 작동합니다.


1

C (gcc) , 217211 바이트

ceilingcat 덕분에 -6 바이트

#define B"+----------"
f(p){for(char*a,*l=" bdfhjlnpr",i=97;puts(B B B"+"),i<'{';printf("|%c.exe %.*d%s |%-10.*s|%s  |\n",i++,!!a,p%10,a?"0%":"   ",p=a?a-l:10,"##########",a?"leeching":"seeding "))a=index(l,i);}

온라인으로 사용해보십시오!


0

/// , 264 바이트

/~/\/\///!/---~@/!!!-~$/@+@+@~</+
|~>/|
+~(/###~*/  ~}/|leeching*~[/.exe ~;/0% |~{/[**|(((#|seeding* ~]/>$</+$<a{]b[1;# ****}]c{]d[2;##****}]e{]f[3;( ***}]g{]h[4;(#***}]i{]j[5;(## **}]k{]l[6;((**}]m{]n[7;#((* }]o{]p[8;##((*}]q{]r[9;((( }]s{]t{]u{]v{]w{]x{]y{]z{>$+

온라인으로 사용해보십시오!

많은 대체를 정의하고이를 사용하여 기존보다 많은 문자를 대체함으로써 작동합니다.


0

Mathematica, 274 바이트

a=Alphabet[];n=StringPadRight;o=ToString;Column@Join[Row/@Table[{g="+----------+----------+----------+\n","|"<>o@a[[i]]<>".exe ",If[EvenQ@i&&i<20,s=o[5i]<>"% ";k="|"<>Table["#",i/2];f="leeching";,k="|##########";f="seeding";s="    "];s,n[k,11]<>"|",n[f,10],"|"},{i,26}],{g}]

0

, 154149143130103 바이트

A⁵δFβ«F³«+χ»+⸿A∨﹪δ²›δ⁹⁵θ|ι.exe⎇θ… ⁵⁺⁺ δ% ⁰|⎇θ…#χ⁺…#∕δχ… ⁻χ∕δχ⎇θ|seeding   |⸿↧|leeching  |⸿A⁺⁵δδ»F³«+χ»+

온라인으로 사용해보십시오! (자세한 버전으로 연결)

  • Neil의 마스터 숯 기술 덕분에 27 바이트가 절약됩니다.

다음을 사용하여 전체 바이트로드를 저장할 수 있습니다 \\r. 온라인으로 사용해보십시오! . 구분 기호가 없으므로 더미 작업을 삽입했습니다.
Neil

실제로 @Neil, 성공적인 인쇄는 덩어리를 요약하고 전체 문자열을 인쇄하는 것보다 짧은 것 같습니다. \r속임수 는 말할 것도 없고 몰랐습니다.
Charlie

0

풍선 껌 , 150 바이트

00000000: e007 3d00 8c5d 0015 8b71 ec14 6414 8031  ..=..]...q..d..1
00000010: 7fc3 2b24 3568 ca81 7ab5 363e c3b7 f500  ..+$5h..z.6>....
00000020: c926 d3f0 55d9 926f 75a8 f8d0 806f 1f12  .&..U..ou....o..
00000030: d71f b824 7e75 a7f2 544f 0364 ee5e 98be  ...$~u..TO.d.^..
00000040: a327 c36c 2ff1 8e6e df94 858e 82d0 d9da  .'.l/..n........
00000050: 77d6 fac6 5548 64aa 7a29 78fa 6886 3c85  w...UHd.z)x.h.<.
00000060: 0494 905e 74de a209 e927 42c8 418d 8250  ...^t....'B.A..P
00000070: ee39 c16b a4c2 9add 0b17 f8b0 9984 9aa8  .9.k............
00000080: defb 2875 31a9 c136 0ec2 6f28 9f8c 9990  ..(u1..6..o(....
00000090: 10d4 0000 0d0a                           ......

온라인으로 사용해보십시오!


0

Perl6, 225 219

my&f={say ("+"~"-"x 10)x 3~"+"};my&g={f;my$b=$^c>9??"   "!!$c*10~"%";say "|$^a.exe $b |{'#'x$c}{' 'x(10-$c)}|$^d  |"};my \s="seeding ";for 1..9 {g chr(95+2*$_),10,s;g chr(96+2*$_),$_,"leeching"};g $_,10,s for "s".."z";f

0

루아, 380 바이트

s=string.gsub
r=string.rep
function l(i)return".exe "..i.."0% |"..r("#",i)..r(" ",10-i).."|leeching  |\n"end
print((s(s("Z|aY|b"..l(1).."Z|cY|d"..l(2).."Z|eY|f"..l(3).."Z|gY|h"..l(4).."Z|iY|j"..l(5).."Z|kY|l"..l(6).."Z|mY|n"..l(7).."Z|oY|p"..l(8).."Z|qY|r"..l(9).."Z|sY|tY|uY|vY|wY|xY|yY|zY","Y",".exe     |##########|seeding   |\nZ"),"Z","+----------+----------+----------+\n")))

gsub행 구분선과 시드 행을 만드는 데 사용 합니다. l거머리 행을 생성합니다. 이름 gsubrep바꾸고 더 많은 바이트를 저장합니다.


0

JSTX , 126 바이트

►-○EO.♥/(:►+:1►+;+₧D0%4►|22♫♥φézï2♂bdfhjlnpr♀*U!↑)☺:♣<!,♂% |♀:2&₧#=-₧#/')▬►#◙')§► ◙21♫♠~√╫WσΓÇ2◙↓♫♥¿Ç~√₧#/►#:1♫♣~√▐┬╞¿:2◙►|41%

온라인으로 사용해보십시오!

설명

►-          # Push literal -
○           # Push literal 9
E           # Push the second stack value the absolute value of the first stack value times.
O           # Collapse all stack values into a string, then push that string.
.           # Store the first stack value in the d register.
♥           # Push literal 3
/           # Enter an iteration block over the first stack value.
(           # Push the value contained in the d register.
:           # Push the sum of the second and first stack values.
►+          # Push literal +
:           # Push the sum of the second and first stack values.
1           # End an iteration block.
►+          # Push literal +
;           # Push the difference of the second and first stack values.
+           # Store the first stack value in the a register.
₧D          # Push literal abcdefghijklmnopqrstuvwxyz
0           # Enter an iteration block over the first stack value and push the iteration element register at the beginning of each loop.
%           # Push the value contained in the a register.
4           # Print the first stack value, then a newline.
►|          # Push literal |
2           # Print the first stack value.
2           # Print the first stack value.
♫♥φézï      # Push literal .exe 
2           # Print the first stack value.
♂bdfhjlnpr♀ # Push literal bdfhjlnpr
*           # Push the value contained in the iteration element register.
U           # Push a true if the second stack value contains the first stack value, else false.
!           # Push a copy of the first stack value.
↑           # Enter a conditional block if first stack value exactly equals true.
)           # Push the value contained in the iteration index register.
☺           # Push literal 1
:           # Push the sum of the second and first stack values.
♣           # Push literal 5
<           # Push the product of the second and first stack values.
!           # Push a copy of the first stack value.
,           # Store the first stack value in the b register.
♂% |♀       # Push literal % |
:           # Push the sum of the second and first stack values.
2           # Print the first stack value.
&           # Push the value contained in the b register.
₧#          # Push literal 10
=           # Push the quotient of the second and first stack values.
-           # Store the first stack value in the c register.
₧#          # Push literal 10
/           # Enter an iteration block over the first stack value.
'           # Push the value contained in the c register.
)           # Push the value contained in the iteration index register.
▬           # Enter a conditional block if the second stack value is less than the top stack value.
►#          # Push literal #
◙           # End a conditional block.
'           # Push the value contained in the c register.
)           # Push the value contained in the iteration index register.
§           # Enter a conditional block if the second stack value is greater than or equal to the top stack value.
►           # Push literal  
◙           # End a conditional block.
2           # Print the first stack value.
1           # End an iteration block.
♫♠~√╫WσΓÇ   # Push literal |leeching  
2           # Print the first stack value.
◙           # End a conditional block.
↓           # Enter a conditional block if first stack value exactly equals false.
♫♥¿Ç~√      # Push literal     |
₧#          # Push literal 10
/           # Enter an iteration block over the first stack value.
►#          # Push literal #
:           # Push the sum of the second and first stack values.
1           # End an iteration block.
♫♣~√▐┬╞¿    # Push literal |seeding   
:           # Push the sum of the second and first stack values.
2           # Print the first stack value.
◙           # End a conditional block.
►|          # Push literal |
4           # Print the first stack value, then a newline.
1           # End an iteration block.
%           # Push the value contained in the a register.
            # Implied println upon termination.

나는 이것이 훨씬 짧아 질 것이라고 확신한다.



0

파스칼 (FPC) , 294 (286) 266 263 바이트

const m='----------+';Q=#10'+'+m+m+m+#10;S='.exe     |##########|seeding   |'+Q;var i:word;begin write(Q);for i:=1to 9do write('|',chr(95+i*2),S,'|',chr(96+i*2),'.exe ',i,'0% |',StringOfChar('#',i),'|leeching  |':22-i,Q);for i:=115to 122do write('|',chr(i),S)end.

온라인으로 사용해보십시오!

그래서 ... 나는 줄 바꿈과 줄 바꿈으로 끝났습니다 : D


0

PowerShell을 , 224 210 181 174 169 160 바이트

$l=("+"+"-"*10)*3+"+
"
0..25|%{"$l|$([char](97+$_)).exe "+("    |$("#"*10)|seeding ",("$(++$c/2)0% |{0,-10}|leeching"-f("#"*($c/2))))[$_%2-and$_-lt18]+"  |"}
$l

온라인으로 사용해보십시오!

이제 64 바이트가 덜 끔찍합니다

몇 가지 깔끔한 트릭 : 많은 "$ (stuff)"를 결합하여 Parens를 절약합니다. $ _ % 2 = 1 인 홀수 만 원하므로 -eq가 필요하지 않습니다. 이제 if-else 대신 list indexing을 사용하여 5 바이트를 절약합니다. 또한 다른 바이트에 대한`n을 제거합니다. var와 0을 분리하기 위해 "$ c`0 %"를 얻을 수 없으므로 현재 경로가 두 문자열을 함께 붙이는 것보다 1 바이트 짧았습니다. 이제 -f 형식화

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.