코드로가는 (쉬운) 길


30

입력:

  • 정수 은 입니다.n3
  • 정수 는 중 하나입니다 .d[1,0,1]

산출:

크기가 인 도로는 경우 북서 방향으로됩니다 . 경우 북쪽 방향 ; 또는 경우 북동쪽 방향 . 도로의 너비는 항상 3 칸입니다 (또는 외부 경계를 포함 할 경우 일반적으로 5 개). 또한 바닥 부분에 도로 분리선이 있고 그 후에 위로 올라 가면서 번갈아 가며 나타납니다.nd=1d=0d=1

몇 가지 예 :

입력 : 출력 :n=7,d=1

      / / /
     /   /
    / / /
   /   /
  / / /
 /   /
/ / /

입력 : 출력 :n=4,d=1

\   \
 \ \ \
  \   \
   \ \ \

도전 규칙 :

  • 필요한 도로를 화면 어딘가에 인쇄하는 한, 모든 앞 / 뒤 공간 및 줄 바꿈은 허용됩니다.
  • 옵션 대신 옵션 또는 대신 사용할 수도 있습니다 . 또한 세 가지 옵션 중 어느 것을 세 방향 중 어느 것에 매핑할지 선택할 수 있습니다. (가 다른 경우 당신이 사용했던 어떤 옵션을 언급해야합니다 에 대한[1,0,1][0,1,2][1,2,3][1,0,1][north-west, north, north-east] 이 문제 설명에 사용되는 각각!)
  • 합리적인 출력 형식이 허용됩니다. 가장 일반적인 것은 STDOUT으로 인쇄하는 것이지만 문자열 또는 2D 문자 목록으로 반환하는 것도 좋습니다.

일반적인 규칙:

  • 이것은 이므로 바이트 단위의 최단 답변이 이깁니다.
    코드 골프 언어가 코드 골프 언어 이외의 언어로 답변을 게시하지 못하게하십시오. '모든'프로그래밍 언어에 대한 가능한 한 짧은 대답을 생각해보십시오.
  • 표준 규칙기본 I / O 규칙으로 답변에 적용 되므로 STDIN / STDOUT, 적절한 매개 변수 및 반환 유형의 전체 프로그램과 함께 함수 / 방법을 사용할 수 있습니다. 당신의 전화.
  • 기본 허점 은 금지되어 있습니다.
  • 가능하면 코드 테스트 (예 : TIO ) 링크를 추가하십시오 .
  • 또한 답변에 대한 설명을 추가하는 것이 좋습니다.

테스트 사례 :

위의 두 가지 예와

입력 : 출력 :n=10,d=0

|   |
| | |
|   |
| | |
|   |
| | |
|   |
| | |
|   |
| | |

3
대체 제목 : "매드 맥스 코드 워리어"
akozi

1
첫 번째 예가 정확하지 않습니까? 그것은 모든 짝수 라인 대신 모든 홀수 라인에 중간 스트립이 있습니다
moonheart08

2
@ moonheart08 아니요. 맨 아래에는 입력이 홀수인지 짝수인지에 관계없이 항상 도로 구분선이 있습니다. 그 후 위로 올라 가면서 번갈아 가며 나타납니다. 텍스트를 좀 더 명확하게하기 위해 텍스트를 약간 수정했습니다.
케빈 크루이 센

오, 내가 틀렸어 좋구나. 설명해 주셔서 감사합니다.
moonheart08

답변:


2

캔버스 , 23 22 바이트

B}⁴H‟m↶⁷?/|∙/╋]\|∙\╋]}

여기 사용해보십시오!

방향 입력 0, 1 및 2를 사용합니다.

설명:

...‟    push "--¶¶- ¶¶--"
    m   mold the horizontal length to the 1st input - a horizontal road
     ↶  rotate counter-clockwise - so the separator is on the bottom
        also replaces the dashes with bars

⁷?     ]     ]}  switch over the 2nd input:
                 default case (input 2):
  /                pad with spaces to a "/" diagonal
   |∙/╋            replace "|" with "/"
                 case 0:
        \          pad with spaces to a "\" diagonal
         |∙\╋      replace "|" with ""

case 1 is empty, but because of a bug, the trailing "}" is still required

설명을 추가 하시겠습니까? :)
Kevin Cruijssen

1
@KevinCruijssen 님이 추가했습니다
dzaima

16

파이썬 2 , 79 78 73 72 바이트

n,d=input()
c='|\/'[d]
i=n
while i:print' '*(n-i*d)+c,i%2*c or' ',c;i-=1

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

소요 [1,0,-1]에 대한[north-west, north, north-east]

Neil 덕분에 -1 바이트


3
Jeez, Kotlin에서 Python과 같은 슬라이싱을 위해 제공하지 않는 것
Adam

i%2*c or' '바이트를 저장합니다.

7

파이썬 2 , 66 바이트

n,d=input()
s=' '+'|\/'[d]
for c in(s*n)[n:]:print' '*n+s,c+s;n+=d

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

용도 d=-1NE에 대한 d=0N에 대한, 그리고 d=1NW합니다. 선행 공백이 허용되는 이점을 활용합니다. 도로 의 하단 세그먼트에 분리기가 있다는 규칙 은 패리티를 올바르게 얻는 것이 까다로 웠습니다. 그것은 공간과 도로 특성 사이 (s*n)[n:]2n교체의 후반을 취하는 슬라이싱에 의해 달성됩니다 .


6

1. 파이썬 3.5, 122120 바이트

스크립트에는 두 개의 매개 변수가 있습니다 : n, d.

d : 0, 1, 2-> \ | /

tio.run

import sys;(n,d)=[*map(int,sys.argv[1:3])];c="\\|/"[d]
for i in range(n):j=n+~i;print(" "*(i,0,j)[d],c,c*(j%2<1)or" ",c)

산출:

$ ./script.py 6 2
      /   /
     / / /
    /   /
   / / /
  /   /
 / / /
$ ./script.py 6 1
 |   |
 | | |
 |   |
 | | |
 |   |
 | | |
$ ./script.py 6 0
 \   \
  \ \ \
   \   \
    \ \ \
     \   \
      \ \ \

설명

# parse input params
(n,d)=[*map(int,sys.argv[1:3])]

# select char for "road"
c="\\|/"[d]

# loop n-times
for i in range(n):

    # complement (how many lines to end)
    j=n+~i

    # print
    #   space i or 0 or j times
    #   road, center of road if j is even else space, road
    print(" "*(i,0,j)[d], c, c*(j%2<1) or " ", c)

편집 : Kevin Cruijssen 덕분에 -2 바이트


3
좋은 대답입니다! : 골프에 두 개의 작은 가지 : n-1-i할 수있다 n+~i( 관련 팁 ) 및 j%2==0될 수 있습니다 j%2<1. 아직 보지 못했다면 파이썬 에서 골프를하기위한 팁<모든 언어>에서 골프를하기위한 팁을 모두 읽는 것이 흥미로울 수 있습니다.
Kevin Cruijssen

1
감사합니다 :) n+~i아직 이것을 보지 못했지만 도움이됩니다. 또한 코드 하이라이트에 감사드립니다.
르네

천만에요! 당신의 체류를 즐기고 많은 답변을 골프. :) 아, 즐거운 주말 보내세요.
케빈 크루이 센

j%2*" "or c다른 몇 바이트를 저장합니다.

5

PowerShell , 88 82 80 74 71 바이트

Mazzy 덕분에 -8 바이트
AdmBorkBork 덕분에 -6 바이트, AdmBorkBork 덕분에 Mazzy
-3 바이트

param($n,$d)$n..1|%{' '*($_,($n-$_))[$d]+($y='/\|'[$d])," $y"[$_%2],$y}

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

NW, NE, N에 [0,1,2]를 사용 d합니다.리스트 인덱스로 두 번 사용하여 먼저 간격 방법을 얻습니다 (2를 사용할 때 목록을 제거하고 0을 반환하면 줄을 그립니다). 그런 다음 선을 그릴 때 사용할 문자를 지정합니다. 도로를 구성하는 공백 문자열 (멤버간에 추가 된 공백이 있음)에 목록을 추가합니다. 또한 모듈로 수학을 기반으로 열린 차선 또는 대시 간을 전환합니다.


1
[NW, NE, N]에 [0,1,2]를 사용하는 경우 80 바이트
Mazzy

1
@ 매지 스마트. 나는 의도적으로 목록에서 떨어지는 것을 완전히 잊었다.
Veskah

1
AdmBorkBork의 array.toString에 대한 멋진 아이디어! 감사. 74 바이트
Mazzy

3
중간 부분을 배열이 아닌 문자열로 인덱싱하여 71 바이트 .
AdmBorkBork


5

, 33 29 23 바이트

↷NNη⊘⊕ηUE¹¦¹F⟦²±²⟧«Jι⁰η

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 이제 모든 기본 차콜 버그가 수정 된 것으로 보이므로 최적의 코드를 광고 할 수 있습니다. 설명:

↶N

첫 번째 입력에 따라 커서 방향을 시계 반대 방향으로 회전하여 1이 북동, 2 북 및 3 북쪽이되도록합니다.

Nη

도로의 길이를 입력하십시오.

⊘⊕ηUE¹¦¹

도로 길이의 절반을 인쇄 한 다음 도로 분리대를 제공하여 늘리십시오.

F⟦²±²⟧«Jι⁰η

도로의 측면을 인쇄하십시오.

그 후에 삭제하지만 충분한 담당자와 사용자가 여기에 그것을 볼 수 있기 때문이었다이 질문의 단단한 버전 제출 @KevinCruijssen : 코드에 (하드) 도로 그래서 대신에, 나는이 대답에 사용 된 스트레칭 트릭은 그 질문에 적용되지 않습니다를 I 다음 47 45 바이트 프로그램을 작성했습니다.

F³«J×ι⊘⊕θ⁰≔…⟦¹ ⟧⊕﹪ι²ιFη«↶§κ⁰F⊖§κ¹§ιⅉP§ιⅉ↑↷§κ⁰

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 설명:

F³«

측면과 분리기를 반복합니다.

J×ι⊘⊕θ⁰

측면의 시작으로 이동하십시오.

≔…⟦¹ ⟧⊕﹪ι²ι

1및 공백을 포함하는 배열을 만들지 만 구분 기호가 아닌 측면을 그리는 경우 공백을 다시 제거하십시오.

Fη«

각 도로 구간을 반복합니다.

↶§κ⁰

그에 따라 커서 방향을 돌립니다.

F⊖§κ¹

도로 구간의 길이보다 1보다 작은 루프를 반복하십시오 ...

§ιⅉ

... 및 배열의 ​​대체 요소를 인쇄합니다. 커서의 Y 좌표를 사용하여 배열을 주기적으로 색인화하여 대체를 수행합니다.

P§ιⅉ

이 도로 섹션의 마지막 행을 인쇄하되 커서를 움직이지 마십시오.

... 대신 커서를 다음 섹션에 대비하여 위로 이동할 수 있습니다.

↷§κ⁰

다음 섹션을 위해 커서 방향을 다시 회전시킵니다.


4

코 틀린 , 96 92 바이트

{n,d->val c="\\|/"[d];(0..n-1).map{println(" ".repeat(n-it*(d-1))+ "$c ${" $c"[it%2]} $c")}}

[-1, 0, 1] 대신 [0, 1, 2]를 허용합니다.

다른 언어의 솔루션과 비슷하게 작동하지만 불행히도 Kotlin 은이 솔루션에서 빛을 발하지 않습니다.

val c=“\\|/“; Kotlin이 문자열을 문자 배열처럼 취급한다는 사실을 활용하여 도로 건설에 사용할 문자를 검색합니다 (자바를 살펴보면 Java 참조).

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


안녕하세요, PPCG에 오신 것을 환영합니다! 출력에 사소한 문제가 있습니다. 도로 중앙의 변경선은 맨 위가 아닌 맨 아래의 입력으로 시작해야합니다. 4내 예와 출력을 비교하여 4의미하는 차이를 볼 수 있습니다 . 나는 Kotlin을 잘 모르지만로 변경 [(it+1)%2]하여 해결할 수 있다고 생각합니다 (그리고 동시에 4 바이트 골프) [it%2]. :) 그 외에도 좋은 답변이므로 나에게서 +1하십시오.
케빈 크루이 센

환영합니다. 도와 주셔서 감사합니다! 변경하겠습니다
Adam

4

TSQL 코드, 171 117 바이트

나는 이것이 코드로 훨씬 짧아 질 수 있다는 것을 깨달았다.

DECLARE @n INT=7,@d INT=0

,@ INT=0a:PRINT
space(@n-@*@d)+stuff(replicate(substring('\|/',@d+2,1)+' ',3),3,@%2,space(@%2))SET
@+=1IF @n>@ GOTO a

TSQL 쿼리, 137 바이트

USE master
DECLARE @n INT=6,@ INT=-1

SELECT space(@n-y*@)+z+iif(y%2=1,z,'  ')+z 
FROM(SELECT top(@n)row_number()over(order
by @)y,' '+substring('\|/',@+2,1)z FROM spt_values)x

데이터베이스가 이미 마스터 인 경우 USE 마스터 가 필요하지 않습니다. 그러나 일부 사용자는 기본 데이터베이스가 다릅니다.

그것을 시도 할 때의 스크립트 는 약간 다릅니다. 공간 ascii-32를 ascii-160으로 교체해야했지만 공간이 표시되지 않았습니다.

사용해보십시오

약간의 조정을하고 교체 할 수 있음을 깨달았습니다.

1/0 주문

주문 @


2
어떻게 order by 1/00으로 나누기 오류가 발생하지 않습니까?
HoneyBadger

1/0이 계산되지 않기 때문입니다. 존재하는 곳 (1/0 선택) 도 같은 효과를 나타냅니다
t-clausen.dk

내 질문을 StackOverflow
HoneyBadger

3

자바 스크립트 (ES8),  90 87  85 바이트

(direction)(length)012

d=>g=(n,w=n)=>n?(c='/|\\'[d]).padStart([n--,,w-n][d])+` ${n&1?' ':c} ${c}
`+g(n,w):''

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


자바 스크립트 (ES6), 90 바이트

이것은 .padStart()메소드 대신 약간 더 많은 수학으로 문자별로 출력 문자를 그립니다 .

(direction)(length)123

d=>n=>(g=x=>y?` /|\\
`[x+5?17+y%2*4>>--x+5-[,n+1-y,n,y][d]&1&&d:(x=n,y--,4)]+g(x):'')(y=n)

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


3

젤리 ,  31  30 바이트

⁶ẋẋƤḂ};€ị“\/|”ẋ3KƊ}Ṛ⁹¡⁶-2¦€ÐeṚ

왼쪽의 길이와 오른쪽의 부정 된 방향 *을 받아 들여 2d 문자 배열을 생성하는 2 차원 링크.
*[north-west, north, north-east]=[1, 0, -1]

온라인으로 사용해보십시오! 바닥 글은 링크를 호출하고 개행 문자와 결합하여 결과를 인쇄합니다.

방법?

⁶ẋẋƤḂ};€ị“\/|”ẋ3KƊ}Ṛ⁹¡⁶-2¦€ÐeṚ - Link: integer, L; integer, D
⁶                              - space character
 ẋ                             - repeat L times
     }                         - using the right argument (D):
    Ḃ                          -   mod 2 (0 if D = 0, 1 otherwise ...A would work too)
   Ƥ                           - for each prefix (of the list of spaces):
  ẋ                            -   repeat (D mod 2 times)
                  }            - using the right argument (D):
                 Ɗ             -   last three links as a monad:
        ị“\/|”                 -     index into "\/|" (1-indexed & modular)
              ẋ3               -     repeat three times - e.g. "\\\"
                K              -     join with spaces          "\ \ \"
      ;€                       - concatenate €ach (altered prefix with that list)
                     ¡         - repeat action...
                    ⁹          - ...number of times: right argument (-1 repeats 0 times)
                   Ṛ           - ...action: reverse (i.e. reverse if north-west)
                           Ðe  - for even indexes:
                         ¦€    -   sparse application for €ach...
                       -2      -   ...to indices: [-2] (the middle of the road)
                      ⁶        -   ...action: a space character
                             Ṛ - reverse

2

파이썬 2, 127 바이트

n,d=input()
c='|/\\'[d]
for i in range(n):t=0if d==0else(i if d<0else n-i);print(' '*t+'{} {} {}'.format(c,' 'if i%2==0else c,c))

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

@TFeld에서 가져온 첫 두 줄.


1
안녕하세요, PPCG에 오신 것을 환영합니다! 제출물이 매개 변수를 사용하는 함수이거나 STDIN의 인수 또는 입력을받는 전체 프로그램이어야합니다. 지금 사용중인 스 니펫은 허용되지 않습니다. 이 문제를 해결하기 위해 선행을 추가하고 D,N=input()3 대신 Python 2를 사용할 수 있습니다 . 또는이 두 매개 변수를 사용하여 람다 함수로 변경할 수 있습니다.
Kevin Cruijssen

1
좋은 해결책. 오히려 실행을 사용하여 122로 설정" ".join(..).format
akozi

1
i%2*c or' '홀수 길이의 도로에서는 구분 기호가 잘못되었음을 알았지 만 몇 바이트를 더 절약합니다.






1

스위프트 4.2 , 112 108 바이트

Sriotchilism O'Zaic 덕분에 -4 바이트

let c=["\\","|","/"][d];(0..<n).map{print((0..<n-$0*(d-1)).map{_ in" "}.joined()+c+" \($0%2==0 ?c:" ") "+c)}

[-1,0,1] 대신 [0,1,2].

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

설명

let c=["\\","|","/"][d]

사용할 도로 표지판을 결정합니다. (어쨌든 단축 될 수 있습니다 내기)

(0..<n).map{

거리의 길이를 반복합니다.

(0..<n-$0*(d-1)).map{_ in" "}.joined()

거리 앞에 공백을 추가합니다.

\($0%2==0 ?c:" ")"

가운데 줄을 다른 모든 줄에 추가합니다.

내 첫 번째 ☝️, 나는 모든 최적화 조언에 만족합니다. 그 실에서 주로 배웠습니다 : Swift의 골프 팁 .


1
사이트에 오신 것을 환영합니다! 예제에서 공백을 제거 했지만 코드 사이 in" "코드에서 공백을 제거하는 것을 잊어 버린 것 같습니다 .
밀 마법사

1
나는 빨리 알지 못하지만 문자열의 끝에 보간이있는 것처럼 보입니다 ( \(c)두 경우 모두). c문자열을에 연결하여 바이트를 절약 할 수 있습니다. 온라인으로 사용해보십시오!
밀 마법사

1
고마워요 3 바이트를 절약했습니다 🚀
palme

1

펄 6 , 66 바이트

->\n,\d{{(' 'x--$ *d%-+^n~(' ',<\ | />[d+1])[1,(n+$++)%2,1])xx n}}

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

줄 목록을 반환합니다.

설명

->\n,\d{                                                         }  # Block taking n, d
        {                                                       }   # Reset $ variables
         (                                                 )xx n    # Repeat n times
          ' 'x  # Space times
              --$ *d  # (-1,-2,-3,...) if d=1
                      # (0,0,0,...) if d=0
                      # (1,2,3,...) if d=-1
                    %-+^n  # modulo -~n = n+1
                         ~  # Concat
                          (' ',<\ | />[d+1])  # Space or line
                                            [1,(n+$++)%2,1]  # Alternate middle char

1

루비 , 90 바이트

n,a=*$*.map{|i|-i.to_i}
c='|\/'[a]
n.upto(-1){|i|puts' '*(i*a-n)+c+' '+[' ',c][i%2]+' '+c}

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

업데이트 : Kevin, 원래 제출물이 도로 가장자리와 마커 사이에 공백이 없음을 지적 해 주셔서 감사합니다 (즉, 5 너비 대신 3 너비 도로) c+' '+...+' '+c.

방향 정보 :에 -1, 0, 1매핑{ north-west, north, north-east }

인수 :이 명령은 4 -1(북서쪽으로 기울어 진 4 열 도로) 와 같은 명령 행 인수를 읽습니다 .

추가 사항 : 이것은 Ruby v2.6.1에서 로컬로 테스트되었으며 온라인으로 사용해보십시오 . Ruby v2.5.3을 사용 하는 것으로 보입니다. 다른 모든 Ruby 버전에서는 작동하지 않을 것이라고 생각할 이유가 없습니다.


안녕하세요, PPCG에 오신 것을 환영합니다! 지시 사항과 도로 변경은 출력 결과가 정확합니다. 현재의 출력에서 하나의 작은 오류가 있습니다 : 도로는 세 개의 넓은 공간 대신 1. 현재 귀하의 도로가해야 |||하거나 |<sp>|,하지만해야 |<sp>|<sp>|하거나 |<sp><sp><sp>|(여기서 <sp>공간이다). Ruby를 모르지만로 변경 c+[' ',c][i%2]+c하여 해결할 수있는 것 같습니다 c+' '+[' ',c][i%2]+' '+c. :)
Kevin Cruijssen

아 잘 잡아! @KevinCruijssen을 지적 해 주셔서 감사합니다.
스펜서 D


1

apt -R , 40 바이트

Æ=Vg"|\\/";²i1S+iX%2?S:U)iSp[TZÊ-YY]gVÃw

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

설명:

Æ=Vg"|\\/";²i1S+iX%2?S:U)iSp[TZÊ-YY]gVÃw
                                            // U = road size
                                            // V = direction
Æ                                     Ã     // Loop X through [0...U]
 =        ;                                 //   Set U to:
    "|\\/"                                  //       "|\/"
  Vg                                        //            [V]
           ²                                //  Double U
            i1          )                   //  Insert at index 1:
              S+                            //    " " +
                 X%2?S:U                    //         X%2?" ":U
                i                           //                  + " "
                         i                  //  Insert at index 0:
                          Sp                //    " " repeated this many times:
                            [TZÊ-YY]        //      [0,U.length - X,X]
                                    gV      //                        [V]
                                        w   // Reverse output

출력에 사소한 실수가있는 것 같습니다. 현재 짝수 입력을위한 도로 분리기는 하단이 아닌 상단에서 시작됩니다. 다른 모든 것들은 괜찮아 보이므로 너무 어렵지 않기를 바랍니다.
Kevin Cruijssen

@KevinCruijssen 아, 그것을 잡아 주셔서 감사합니다. 답변을 업데이트하기 전에이 솔루션에 문제 가 없는지 확인할 수 있습니까?
올리버

그렇습니다. :)
Kevin Cruijssen

1
@KevinCruijssen 나는 당신이 그 사람들을 좋아하기 때문에 설명을 추가했습니다 : P
Oliver

고마워요 :) 나는 항상 골프 언어에 대한 설명을 좋아합니다. JS의 골프 언어는 물론 JavaScript 답변을 이해하는 데 어려움이 있습니다. ;)
Kevin Cruijssen

1

Stax , 23 바이트

ù╒←∩♂2Ωⁿ¡├∩22♀Ç○=÷â╧δÖ↑

실행 및 디버깅

입력은 공백으로 구분 된 두 정수입니다.
첫 번째는 d입니다. -1은 북동쪽을 지정합니다. 북쪽은 0입니다. 1은 북서쪽입니다. 두 번째 매개 변수는 n입니다. 이 두 값은 입력에서 암시 적으로 구문 분석되어 입력 스택 n에서 위에 배치됩니다 . 또한 암시 적으로 구문 분석 된 첫 번째 값이므로 dstax의 x레지스터 에서 액세스 할 수 있습니다 .

예를 들어 "1 7"을 입력하십시오.

            Main stack      Explanation
            ----------      -----------
;           [7]             peek from input stack
m                           map over integers [1..n] using the rest of the program
                            output each produced value implicitly
  ;         [1 7]           peek from input stack
  +         [8]             add
  .*"       [8 [42 34]]     2 character string literal with codepoints 42 and 34
  @         [42]            get the element at the specified modular index (8)
  0         [42 0]          literal zero
  "|\/"x@   [42 0 92]       get codepoint from string literal at input d (from x register)
  \         [42 [0 92]]     make pair
  :B        ['\ \ \ ']      encode in custom base; it's binary with custom codepoints
  _x*       ['\ \ \ ' 1]    (loop variable) * (input d)
  ;^        ['\ \ \ ' 1 8]  peek from input stack and increment
  %         ['\ \ \ ' 1]    modulus
  6+        ['\ \ \ ' 7]    add 6
  )         [' \ \ \ ']     left-pad to length

이것을 실행


설명을 추가 하시겠습니까? :)
Kevin Cruijssen

1
@ KevinCruijssen : 전혀.
재귀

0

perl -M5.010 -Mfeature = 서명, 97 바이트

sub f($n,$d){$x=qw[| / \\][$d];say" "x($d<1?$_*-$d:$n-$_),$x,$",($n-$_)%2?$":$x,$",$x for 1..$n;}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.