대체로 코드 골프의 또 다른 트릭입니다.


64

이 도전의 목적은 록 밴드 Pink Floyd 의이 위대한 앨범 표지의 ASCII 버전을 만드는 것 입니다.

벽돌 접합은 문자 _와로 구성 |됩니다. 벽돌은 접점을 제외하고 너비 7과 높이 2 자입니다. 접점을 포함한 기본 단위는 다음과 같습니다.

_________
|       |
|       |
_________

브릭의 각 행은 이전 행과 관련하여 브릭 너비의 절반 (4 자) 만큼 오프셋됩니다 .

________________________________________
  |       |       |       |       |     
  |       |       |       |       |     
________________________________________
      |       |       |       |       | 
      |       |       |       |       | 
________________________________________
  |       |       |       |       |     
  |       |       |       |       |     

벽은 다음과 같이 매개 변수화 됩니다. 모든 매개 변수는 접점을 포함하여 문자로 측정됩니다.

  1. 첫 번째 행의 수평 오프셋F . 이것은 왼쪽 여백과 맨 위 행의 첫 번째 수직 교차점 사이의 거리입니다. (행 사이의 하프 브릭 상대 오프셋도 기억하십시오). 그것의 가능한 값은 0, 1..., 7.
  2. 전체 , W. 여기에는 접점이 포함됩니다. 그 값은 양의 정수입니다.
  3. 높이 , H. 여기에는 접점이 포함됩니다. 그 값은 양의 정수입니다.

벽의 상단은 항상 행의 상단과 일치합니다. 바닥이 울퉁불퉁 할 수 있습니다 (총 높이가 배수가 아닌 경우 3). 예를 들어, 여기에 대한 출력의 6, 44, 11:

____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       |     
  |       |       |       |       |       |     
____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       |     

매개 변수에 대한 시각적 설명 :

          F=6
         ......   
     .   ____________________________________________
     .         |       |       |       |       |    
     .         |       |       |       |       |     
     .   ____________________________________________
     .     |       |       |       |       |       | 
H=11 .     |       |       |       |       |       |      
     .   ____________________________________________
     .         |       |       |       |       |     
     .         |       |       |       |       |     
     .   ____________________________________________
     .     |       |       |       |       |       |      

         ............................................
                             W=44

추가 규칙

프로그램이나 기능을 제공 할 수 있습니다.

입력 형식은 평소처럼 유연합니다. 출력은 STDOUT 또는 함수에 의해 리턴 된 인수를 통해 이루어질 수 있습니다. 이 경우 줄 바꿈이있는 문자열이거나 문자열 배열 일 수 있습니다.

후행 공백이나 개행이 허용됩니다.

바이트 단위의 최단 코드가 이깁니다.

테스트 사례

입력은 위에 주어진 순서대로, 즉 첫 번째 행의 수평 오프셋, 총 너비, 총 높이입니다.

6, 44, 11:
____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       | 
  |       |       |       |       |       | 
____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       |     


2, 20, 10:
____________________
  |       |       | 
  |       |       | 
____________________
      |       |     
      |       |     
____________________
  |       |       | 
  |       |       | 
____________________


1, 1, 1:
_


1, 2, 3:
__
 |
 |


3, 80, 21:
________________________________________________________________________________
   |       |       |       |       |       |       |       |       |       |    
   |       |       |       |       |       |       |       |       |       |    
________________________________________________________________________________
       |       |       |       |       |       |       |       |       |       |
       |       |       |       |       |       |       |       |       |       |
________________________________________________________________________________
   |       |       |       |       |       |       |       |       |       |    
   |       |       |       |       |       |       |       |       |       |    
________________________________________________________________________________
       |       |       |       |       |       |       |       |       |       |
       |       |       |       |       |       |       |       |       |       |
________________________________________________________________________________
   |       |       |       |       |       |       |       |       |       |    
   |       |       |       |       |       |       |       |       |       |    
________________________________________________________________________________
       |       |       |       |       |       |       |       |       |       |
       |       |       |       |       |       |       |       |       |       |
________________________________________________________________________________
   |       |       |       |       |       |       |       |       |       |    
   |       |       |       |       |       |       |       |       |       |    

34
당신은 hnq에서 clickbait와 저를 얻었다
로한 Jhunjhunwala에게

2
@RohanJhunjhunwala 맞은 소리
Insane

4
가사의 음절 수와 일치 해 주셔서 감사합니다. 얼마나 많은 사람들이 노래를 분리하여 음절을 틀리려고하는지 믿지 못할 것입니다.
크리스 Cirefice

1
@ChrisCirefice Haha, 감사합니다! 타이틀은이 도전의 중요한 부분이었습니다
Luis Mendo

답변:


17

Pyth, 43 27 바이트

내가 필요로 골프에 심하게 ... 점수가 너무 부끄러운 일이다.

AQVE<*H?%N3X*8d+G*4/N3\|\_H

이미 온라인으로 사용해보십시오.

입력 형식

6,44
11

출력 형식

____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       | 
  |       |       |       |       |       | 
____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       | 

설명

AQVE<*H?%N3X*8d+G*4/N3\|\_H   First two inputs as list in Q,
                              third input as E.

AQ                            Assign G to the first item in Q
                              and H to the second item in Q.
  VE                          For N from 0 to E-1:
                   /N3            N floor-div 3.
                                    if N gives a remainder of 3 or 4 or 5
                                    when divided by 6, this will be odd;
                                    otherwise, this will be even.
                 *4               Multiply by 4.
                                    if the above is odd, this will leave
                                    a remainder of 4 when divided by 8;
                                    otherwise, the remainder would be 0.
               +G                 Add G (as an offset).
           X*8d       \|          In the string "        " (*8d),
                                  replace (X) the character with the
                                  index above with "|" (modular indexing,
                                  hence the manipulation above).
       ?%N3             \_        If N%3 is non-zero, use the above;
                                  otherwise, use "_".
     *H                           The above repeated H times.
    <                     H       Take the first H characters of above.
                                  Implicitly print with newline.

당신이 이길 것 같은데
wordsforthewise

30

C, 86 85 83 82 바이트

Lynn 덕분에 3 바이트가 절약되었습니다.
찰리 덕분에 1 바이트가 절약되었습니다.

i;f(o,w,h){++w;for(i=0;++i<w*h;)putchar(i%w?i/w%3?i%w+i/w/3*4+~o&7?32:124:95:10);}

1
for(i=0;++i<w*h;)또는 i로컬로 만들어진 경우 (매개 트릭) :for(;++i<w*h;)
Charlie Charlie

교체 i;i=1;루프에 대한 하나 이상의 바이트를 저장합니다.
xryl669

for(i=1;i<w*h;++i)-> for(i=0;++i<w*h;)저장 1
Yay295

@ xryl669 유효하지 않습니다. 함수를 재사용 할 수 있어야합니다.
orlp

@ Yay295 찰리가 7 시간 전에 게시 한 이후로 찰리를 인정했습니다.
orlp

26

C, 92 바이트

b(f,w,h,y,x){for(y=0;y<h;y++,puts(""))for(x=0;x<w;x++)putchar(y%3?(x+y/3*4-f)%8?32:124:95);}

로 호출하십시오 b(F, W, H).


3
C에서 92 바이트 만? 참 놀랍군.
Leaky Nun


13

펄, 63 바이트

#!perl -nl
$y+=print+map$y%3?$_++-$`&7?$":'|':_,($y%6&4)x$&for/ \d+/..$'

shebang을 2로 계산하면 입력이 stdin에서 가져오고 공백이 분리됩니다.

샘플 사용법

$ echo 2 20 10 | perl bricks.pl
____________________
  |       |       |
  |       |       |
____________________
      |       |
      |       |
____________________
  |       |       |
  |       |       |
____________________

11

하스켈, 83 바이트

q s="_":[s,s]
(f!w)h=take h$cycle$take w.drop(7-f).cycle<$>q"       |"++q"   |    "

!문자열 목록을 반환 하는 3 진 접두사 함수 를 정의합니다 . 사용 예 :

*Main> putStrLn $ unlines $ (3!14) 7
______________
   |       |  
   |       |  
______________
       |      
       |      
______________

작동 방식 :

            q"       |"++q"   |    "  -- build a list of 6 strings
                                      --   1:     "_"
                                      --   2:     "       |"
                                      --   3:     "       |"
                                      --   4:     "_"
                                      --   5:     "   |    "
                                      --   6:     "   |    "
         <$>                          -- for each of the strings
     take w.drop(7-f).cycle           -- repeat infinitely, drop the first 7-f chars
                                      --    and take the next w chars
  cycle                               -- infinitely repeat the resulting list
take h                                -- and take the first h elements

1
이와 같은 답변을 통해이 언어를 배우고 싶습니다.
GuitarPicker

3
문제 설명을 읽을 때 Haskell을 생각했습니다. "무한 반복"은 정말 깔끔한 기능입니다.
DLosc

10

자바 스크립트 (ES6), 96 95 바이트

g=
(f,w,h)=>[...Array(h)].map((_,i)=>(i%3?`       |`:`_`).repeat(w+7).substr(f^7^i%6&4,w)).join`
`
;
<div onchange=o.textContent=g(f.value,w.value,+h.value)><input id=f type=number min=0 max=7 placeholder=Offset><input id=w type=number min=0 placeholder=Width><input id=h type=number min=0 placeholder=Height></div><pre id=o>

설명 : 반복 7 공백 + |패턴 또는 반복 _s 문자열을 작성 하지만 최소한 w각 행에 필요한 문자 를 추출 할 수있을 정도로 긴 문자열을 작성하십시오. 처음 세 행은 위치 f^7에서 시작한 다음 다음 세 행은 위치 f^3에서 시작 하므로 1을 절약하기 위해 6의 각 블록의 마지막 두 행에서 반대 비트 2를 사용하여 세 번째 행마다 비트 2를 토글f 하여이를 달성합니다. 바이트.


7

MATL, 42 36 33 바이트

:-Q'_ | |'[DClCl]Y"8et4YShwi:3$)!

입력 형식은 다음과 같습니다 nCols, offset,nRows

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

여기서 접근 방법은 "템플릿"을 설정 한 다음 [1 2 ... nRows]첫 번째 입력 ( [1 2 ... nCols] - shift)에 의해 이동 된 행 인덱스 ( ) 및 열 인덱스 를 사용하여 색인을 생성하는 것 입니다. MATL의 모듈 식 인덱싱 덕분에 자동으로 타일 출력이 생성됩니다. 참고로 공간을 절약하기 위해 기술적으로 전치 버전의 템플릿으로 작업 한 다음 !마지막에 조옮김 ( )을 가져옵니다.

템플릿은 다음과 같습니다.

________
       |
       |
________
  |     
  |     

1
패턴을 생성하기 위해 런 렝스 코딩 사용
Luis Mendo

6

파이썬 2, 93 88 바이트

두 번째 들여 쓰기 수준은 탭입니다. Leaky Nun 및 일부 자체 수정 덕분에 일부 바이트를 절약하면 이제 올바른 오프셋이 발생합니다.

def f(F,W,H):
 for h in range(H):print["_"*W,((("|"+7*" ")*W)[8-F+h%6/3*4:])[:W]][h%3>0]

이전 코드 :

def f(F,W,H,x="|"+7*" "):
 for h in range(H):
    print ["_"*W,(x[F+4*(h%6>3):]+x*W)[:W]][h%3>0]

명명되지 않은 람다와 동일한 길이 :

lambda F,W,H,x="|"+7*" ":"\n".join(["_"*W,(x[F+4*(h%6>3):]+x*W)[:W]][h%3>0]for h in range(H))

F,W,H=input()
Leaky Nun

공백을 제거한 후print
Leaky Nun

사용 h/3%2*4또는 h%6/3*4대신4*(h%6>3)
Leaky Nun

두 번째 들여 쓰기 수준이 필요하지 않습니다. 그냥 넣어 print와 같은 줄에 문을 for
새는 수녀

"| "("|"+7*" ")내가 세는 것 보다 짧다
Leaky Nun

6

QBASIC, 121 109 바이트

(QB64에서 테스트)

IF수학적으로 동등한 진술로 골프를 치르는 @DLosc에게 감사드립니다 . 그 가치는 12 바이트였습니다.

일반적인 방법 :

한 번에 하나의 각 셀을 통해 루프 그것이를해야할지 여부를 결정 _, 또는 |그 위치에 따라. MOD문장과 부울 논리는 벽돌 경계와 벽돌을 얼마나 비틀 거리게 하는지를 결정하는 데 사용됩니다.

암호:

INPUT F,W,H
FOR y=0TO H-1:FOR x=0TO W-1
?CHR$((y MOD 3>0)*(((x-(y MOD 6>3)*4)MOD 8=F)*92+63)+95);
NEXT:?:NEXT

사용 메모 :

QBasic은 입력이 쉼표로 구분 된 숫자 일 것으로 예상합니다.


1
IF/ 대신 수학을 사용하면 THEN더 많은 괄호가 추가되지만 12 바이트가 절약됩니다.?CHR$((y MOD 3>0)*(((x-(y MOD 6>3)*4)MOD 8=F)*92+63)+95);
DLosc

의견 주셔서 감사합니다. 머리 뒤로는 수학 탐구를 고려했지만 그렇지 않았습니다. 최근 제출 에서 이미지를 채색하기 위해 이와 비슷한 것을 수행했지만 사용 된 구현에는 MOD 연산자가 없었습니다.
GuitarPicker

5

자바, 149 , 147 , 146 , 143 바이트

골프 :

String f(int o,int w,int h){String s="";for(int y=0,x;y<h;++y){for(x=0;x<w;++x){s+=y%3>0?(x-o+(y-1)/3%2*4)%8==0?'|':' ':'_';}s+='\n';}return s;}

언 골프 드 :

public class AllInAllItsJustUhAnotherTrickInCodeGolf {

  public static void main(String[] args) {
    int offset = 6;
    int width = 44;
    int height = 11;
    System.out.println(new AllInAllItsJustUhAnotherTrickInCodeGolf()
        .f(offset, width, height));
  }

  // Begin golf
  String f(int o, int w, int h) {
    String s = "";
    for (int y = 0, x; y < h; ++y) {
      for (x = 0; x < w; ++x) {
        s += y % 3 > 0 ? (x - o + (y - 1) / 3 % 2 * 4) % 8 == 0 ? '|' : ' ' : '_';
      }
      s += '\n';
    }
    return s;
  }
  // End golf

}

1
> 0두 문자를 절약 할 수있는 것과 비교하여 삼항의 순서를 바꿀 수 있습니다 . 물론 선언을에 결합 할 수 있습니다 int y=0,x.
Frozn

말했다 것으로 Frozn , 당신은 제거 할 수 있습니다 int 전과 x및 사용 int y=0,x2 바이트를 저장하는 대신 처음에 루프에. 또한, 현재는 변경할 수 있습니다 y%3==0y%3<1. (이것은 가능하지 않습니다 ...%8==0에 대한 ...&8<1귀하의 작업이 음수를 반환 할 수 있기 때문에,하지만.)
케빈 Cruijssen

완료했다. 두 번째 모듈로가 음수를 반환 할 수 있으며 처음 에이 함수를 작성할 때 디버깅하는 동안 정확했습니다.

1
확실하지 우리는 이것을 놓친 방법,하지만 당신은 사용, 또는 .. -2 바이트 대한 매개 변수의 공백을 제거 할 수있는 int...o매개 변수로와 변화 wo[1], ho[2]oo[0]-3 바이트 대신합니다.
Kevin Cruijssen

4

루비, 72 66 바이트

->f,w,h{h.times{|i|puts i%3<1??_*w:((?|+' '*7)*w)[8-f+i%6/4*4,w]}}

6 바이트의 @Value Ink에 감사드립니다!

간단한 문자열 곱셈 및 슬라이싱.

Ruby 2.3.0에서 작동합니다 (Ideone의 버전 2.1은 구문 오류를 던졌습니다).


2
사용 i%6/4*4대신 (i%6>3?4:0)하고 사용 ?_하는 대신 '_', ?|대신 '|'.
가치 잉크

감사합니다. 나는 ?단일 문자 트릭을 잊어 버렸고 "수학"부분은 정말 인상적입니다!
Leibrug

1
나는 ((' '*7+?|)*w)[f^7^i%6&4,w]당신에게 2 바이트를 절약 한다고 생각 합니다.
Neil

@ 닐 감사합니다. 코드를 편집하겠습니다. 제안이 어떻게 작동하는지 이해하자마자 :)
Leibrug

4

줄리아 : 150 128 116 108 107 바이트

# in codegolf.jl
r=repmat;b=r([' '],6,8);b[[1,4],:]='_';b[[2,3,23,24]]='|';b=r(b,h,w)[1:h,o+=1:o+w];b[:,end]=10;print(b'...)

인수와 함께 실행하려면 : julia -e 'o=2;h=18;w=40;include("codegolf.jl")'

bash에서 호출하는 것이 부정 행위이고 인터프리터 내에서 함수를 원한다면 함수 버전은 117 바이트입니다. :)

f(o,h,w)=(r=repmat;b=r([' '],6,8);b[[1,4],:]='_';b[[2,3,23,24]]='|';b=r(b,h,w)[1:h,o+=1:o+w];b[:,end]=10;print(b'...))

데모

(여분의 바이트 절약 팁을 위해 @ glen-o 감사합니다!)


PPCG에 오신 것을 환영합니다! 여기도 만나서 반가워요!
Luis Mendo

입력은 명시 적으로 가져와야합니다. 즉,이 세 변수에 대해 일종의 입력 명령문이 필요합니다. 또는 인수로 사용하고 결과를 표시하거나 결과를 표시하는 함수를 사용할 수 있습니다. 완료되면 온라인 사용해보기를
Luis Mendo


아 그래, 내가 했어! : p
Tasos Papastylianou

1
repmat 대신 repmat ( repmat([32],6,8))를 사용하고 repmat의 이름을 바꾸어 다른 문자 ( g=repmat;b=g([32],6,8)및 이후 b=g(b,h,w)[1:h,o+1:o+w+1]) 를 면도 하여 몇 개의 문자를 저장할 수 있습니다 . 그리고 교체 reinterpret와 함께 map. 내 계산으로는이 변경 사항 사이에 9 바이트를 절약 할 수 있습니다.
Glen O

3

자바 스크립트, 172 168 165 157 147 142 137 바이트

(O,W,H)=>{t='_'.repeat(W),x='|       '.repeat(W),f=t+`
`;for(i=0;++i<H;)f+=(!(i%3)?t:(i%6)>3?x.substr(O,W):x.substr(8-O,W))+`
`;return f}

N = (O,W,H)=>{t='_'.repeat(W),x='|       '.repeat(W),f=t+`
`;for(i=0;++i<H;)f+=(!(i%3)?t:(i%6)>3?x.substr(O,W):x.substr(8-O,W))+`
`;return f}

let test_data = [[6,44,11],
                 [2,20,10],
                 [1,1,1],
                 [1,2,3],
                 [3,80,21]];

for (test of test_data)
    console.log(N(...test));


s.repeat(w)대신에 사용 하지 Array(w).fill(s).join``않겠습니까?
Neil

@Neil : 좋은 생각이지만 더 나은 것을 생각했습니다.
Yay295

그런 다음 귀하의 솔루션이 생각보다 낫다는 것을 깨달았습니다. 감사!
Yay295

3

Dyalog APL, 29 바이트

↑⎕⍴⎕⍴¨a,4⌽¨a←'_',2⍴⊂⌽⎕⌽¯8↑'|'

시험 : 6 44 11, 2 20 10, 1 1 1, 1 2 3, 3 80 21

입력 평가; 발현은 오른쪽에서 왼쪽으로 실행하면서, 그것을 위해 프롬프트 F, WH순차

¯8↑'|' 이다 ' |'

⎕⌽ 회전하면 앞면에서 F자를 자르고 끈 끝에 놓습니다.

다른 방법은 반대로

'_',2⍴⊂ '_'의 3 튜플과 그 뒤에 문자열의 두 개의 개별 사본을 만듭니다.

a,4⌽¨a← 지금까지 모든 것의 4 회전을 추가하면 6 튜플이됩니다.

⎕⍴¨ 각 요소의 너비를 변경

⎕⍴ 높이를 바꾸다

벡터의 벡터를 행렬로 혼합


2

실제로 , 44 43 40 바이트

이것은 Neil의 JS answer 에서 실제로 알고리즘의 포트입니다 . 골프 제안을 환영합니다. 온라인으로 사용해보십시오!

╗╝r⌠;6(%4&╜7^^╛'|7" "*+*t╛@H╛'_*3(%YI⌡Mi

풀기 :

          Takes implicit input in the order h, w, f.
╗╝        Save f to register 0. Save w to register 1.
r⌠...⌡M   Map over range [0..h-1]. Call this variable i.
  ;         Duplicate i
  6(%       i%6...
  4&        ...&4
  ╜7^^      ...^i^7. Call it c.
  ╛         Push w.
  '|7" "*+  The string "       |"
  *t╛@H     (("       |" * w)[c:])[:w]
  ╛'_*      Push "_" * w
  3(%       Push 3, move duplicate i to TOS, mod.
  YI        If not i%3, take "_"*w, else (("       |" * w)[c:])[:w]
            Function ends here.
i         Flatten the resulting list and print the bricks implicitly.


1

옥타브 80 76 바이트

% in file codegolf.m
c(6,8)=0;c([1,4],:)=63;c([2,3,23,24])=92;char(repmat(c+32,h,w)(1:h,o+1:o+w))

터미널에서 실행하려면 : octave --eval "o=2;h=18;w=44; codegolf"

(또는 터미널 호출이 부정 행위라고 생각하면 익명 함수 구현에 86 바이트가 걸립니다.)

c(6,8)=0;c([1,4],:)=63;c([2,3,23,24])=92;f=@(o,h,w)char(repmat(c+32,h,w)(1:h,o+1:o+w))

f(2,18,44)옥타브 통역사 에게 전화 하십시오.


1

Bash + Sed, 411 395 381370 바이트 :

F=`printf '_%.s' $(eval echo {1..$2})`;V="       |";(($[($2-$1)/8]>0))&&L=`printf "$V%.s" $(eval echo {1..$[($2-$1)/8]})`||L=;Z=`printf "%$1.s|%s\n" e "$L"`;I=$[($2-(${#Z}-4))/8];(($I>0))&&W=`printf "$V%.s" $(eval echo {1..$I})`||W=;J=${Z:4}$W;for i in `eval echo {1..$[$3/3+1]}`;{ (($[$i%2]<1))&&O+="$F\n$J\n$J\n"||O+="$F\n$Z\n$Z\n";};echo "`echo -e "$O"|sed -n 1,$3p`"

글쎄, 여기 Bash 또는 그 문제에 대한 쉘 스크립팅 언어의 첫 번째 대답이 있습니다. 이것은 또한 여기에서 가장 긴 대답입니다. 형식으로 공백으로 구분 된 명령 행 인수를 Offset Width Height받습니다. 이것은 아마도 현재보다 훨씬 짧을 수 있으므로, 이것을 더 골프화하기위한 모든 팁과 트릭이 높이 평가됩니다.


1

델파이 / 오브젝트 파스칼, 305 , 302 , 292 바이트

3 개의 매개 변수를 읽는 전체 콘솔 프로그램.

uses SySutils,Math;var i,q,o,w,h:byte;begin o:=StrToInt(paramstr(1));w:=StrToInt(paramstr(2));h:=StrToInt(paramstr(3));for q:=0to h-1do begin for i:=1to w do if q mod 3=0then Write('_')else if IfThen(Odd(q div 3),((i+o)mod 8),((i-o)mod 8))=1then Write('|')else Write(' ');Writeln('');end end.

언 골프

uses
  SySutils,
  Math;
var
  i,q,o,w,h:byte;
begin
  o:=StrToInt(paramstr(1));
  w:=StrToInt(paramstr(2));
  h:=StrToInt(paramstr(3));

  for q := 0 to h-1 do
  begin
    for i := 1 to w do
      if q mod 3 = 0  then
        Write('_')
      else
        if IfThen(Odd(q div 3),((i+o)mod 8),((i-o)mod 8)) = 1 then
          Write('|')
        else Write(' ');
    Writeln('');
  end
end.

안타깝게도 델파이에는 삼항 연산자가 없으며 매우 장황한 언어입니다.

테스트 사례

D:\Test\CodeGolfWall\Win32\Debug>Project1.exe 2 20 10
____________________
  |       |       |
  |       |       |
____________________
      |       |
      |       |
____________________
  |       |       |
  |       |       |
____________________

D:\Test\CodeGolfWall\Win32\Debug>Project1.exe 6 44 11
____________________________________________
      |       |       |       |       |
      |       |       |       |       |
____________________________________________
  |       |       |       |       |       |
  |       |       |       |       |       |
____________________________________________
      |       |       |       |       |
      |       |       |       |       |
____________________________________________
  |       |       |       |       |       |

편집 : 모든 변수에 대해 바이트를 유형으로 사용하여 3 바이트를 면도 할 수 있습니다.

편집 2 : 콘솔 응용 프로그램에는 프로그램 선언이 필요 하지 않습니다 -10

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