ASCII Art“비행 시뮬레이터”


24

편집하다

소문자 o를 사용하여 평면을 정의한 다음 나중에 대문자를 사용한 원래 게시물에서 내 오타에 약간의 혼란이있는 것으로 보입니다. 불행히도이 버그는 샌드 박스에서 발견되지 않았습니다. 많은 회원들이 둘 다로 답을 작성했고 오타가 내 잘못이기 때문에 비행기의 정의에서 대문자 또는 소문자 o를 허용합니다. 이에 대한 새로운 규칙을 추가했습니다.

배경

나는 그것을 부르는 경향이 있으므로 아스키 아트 애니메이션 을 좋아합니다. 나는 이것이 구현하기가 너무 어렵다고 생각하지 않기 때문에 희망적으로 짧고 흥미로운 답변을 얻을 수 있습니다.

모든 동료 커뮤니티 회원에게

답변을 향상 시키려면 바이트 수를 다음과 같이 수정하십시오.

이전 바이트 수 새로운 바이트 수

우리는 당신의 진행 상황을 볼 수 있습니다. 감사!

도전

여기는 아스키 비행기입니다

--O--

아스키 활주로

____|     |____

비행기는 활주로 위의 5 개 줄에서 시작합니다. 미터법과 영국식 시스템 사이의 충돌을 막고 이것을 미터법이나 발판에 대해 언급하지 않는 진정한 국제적 도전으로 만들기 위해. 예:

        --O--




____|     |____

비행기는 아래와 같이 활주로 중앙에 정확히 착륙해야합니다.

____|--O--|____

입력

평면의 초기 수평 위치는 왼쪽 날개의 끝을 참조하는 데 사용되는 정수 입력에 의해 정의됩니다. 즉 0에서 10 사이입니다.

산출

비행기 비행의 각 단계가 표시되어야합니다. 아래 예 (입력 = 10) :

          --O--




____|     |____

         --O--



____|     |____

        --O--


____|     |____

       --O--

____|     |____

      --O--
____|     |____

____|--O--|____

일을 단순하게 유지하기 위해 우리는 원근법을 무시하고 있습니다. 활주로가 가까워 질수록 같은 크기로 유지됩니다.

규칙

  • 업데이트 평면의 가운데는 대문자 또는 소문자가 될 수 있지만 코드를 통해 선택된 것이 선택되어야합니다. 귀하의 언어가 위의 문자를 지원하지 않는 경우 다른 ASCII 문자 만 사용하십시오.
  • 평면은 프레임 당 한 줄 아래로 내려갑니다.
  • 비행기는 한 줄 아래로 내려갈 때마다 왼쪽이나 오른쪽으로 1 칸만 이동할 수 있습니다. 하강의 각 라인에서 움직일 필요는 없습니다. 활주로에서 끝나는 한 좌우로 움직일 때 당신에게 달려 있습니다. 당신은 조종사입니다!
  • 오류 처리가 필요하지 않습니다. 입력이 항상 0에서 10까지의 유효한 정수라고 가정 할 수 있습니다.
  • 출력은 위에 표시된 문자로만 구성되어야하며 (언어가 지원하지 않는 경우 편집 된 첫 번째 규칙 참조) 동일한 크기 여야합니다. 즉 6 줄 x 15 자 너비로 시작해야합니다. 위의 예와 같이 높이가 증가함에 따라 높이가 줄어들 수 있습니다.
  • 프로그램이나 기능은 훌륭하지만 위에 표시된대로 출력을 생성해야합니다.
  • 선행 / 트레일 링 공간 / 개행은 괜찮습니다.
  • 원하는 경우 출력 프레임간에 화면을 지우십시오. 이것은 요구 사항 이 아닙니다 .
  • 표준 허점은 평소와 같이 금지되어 있습니다 (그러나 이런 종류의 도전에 도움이되는 많은 사람들이 있다고 생각하지는 않지만).
  • 이것은 코드 골프이므로 최단 답변은 분명히 승자이며 아마도 대부분의 투표권을 얻지 만 실제로 흥미로운 솔루션이 예상치 못한 언어로 길어 지더라도 반드시 가장 좋은 답변으로 받아 들여지는 것은 아닙니다. 규칙에 부합하는 모든 내용을 게시하십시오.

온라인 에서 사용해보십시오! 다른 입력 값을 찾는 방법을 볼 수 있습니다.


출력이 입력에 의존하기 때문에
이것이 kolmogorov

설명을 @ovs 감사합니다. 그런 다음 해당 태그를 제거하겠습니다.
ElPedro

일반적으로 합격은 객관적인 승리 기준에 가장 적합한 답변으로 이동합니다. 더 긴 다른 대답을 받아들이면 약간의 결함이 생길 수 있습니다.
Level River St

감사합니다 @LevelRiverSt. 이것을 명확히하는 메타 게시물이 있습니까? 그렇지 않으면 대답을 받아들이지 않는 것이 좋습니다.
ElPedro

btw, 나는 이전에 더 긴 답변을 받아 들였고 더 짧은 답변에 대한 공로를 인정했으며 커뮤니티의 문제 가 없었습니다 . 질문 끝에 내 결과 설명을 참조하십시오 . 이것이 잘못 되었습니까?
ElPedro

답변:


5

TI-BASIC, 61 바이트

Input A
A
For(B,1,5
ClrHome
Output(5,1,"----/     /----
Output(B,Ans,"--O--
Ans+6-median({5,7,Ans
End

테스트 할 온라인 인터프리터 또는 다운로드 (Linux의 경우)를 알고 있습니까? 작동한다고 가정 한 답변에 +1 :)
ElPedro

TilEm을 확인하십시오. 내가 일할 수있는 유일한 사람이야
Julian Lachniet

2
다른 답변을 받았을 가능성이있는 사람을 묻는 +1 확실히 TilEm을 확인하고 팁 주셔서 감사합니다.
ElPedro

8

TI-BASIC, 62 바이트

:Input A
:A
:For(N,3,8
:ClrHome
:Output(8,1,"----I     I----
:Output(N,Ans,"--O--
:Ans+(Ans<6)-(Ans>6
:End

TI-BASIC은 _ 또는 | 따라서 나는 수도 I와-로 대체되었습니다. 바이트 수에는 영향을 미치지 않습니다.


좋아, 나는 리눅스에있다. 이것을 테스트 할 다운로드를 추천 할 수 있습니까? btw, 나는 통역사를 찾을 때까지 작동한다고 가정합니다 +1 :)
ElPedro

불행하게도. Windows 10 컴퓨터에 Wabbitemu와 TilEm이 모두 설치되어 있지만 실제 TI-84 +에서 코드를 테스트합니다. 죄송합니다
Golden Ratio

문제 없어! 그냥 묻는 :)
ElPedro

코드를 많이 편집했기 때문에이 게시물과 Julian Lachniet 사이에서 가장 빠른 속도로 번갈아 가면서 60 바이트 결론에 도달 할 때까지 clrhome을 추가하고 바이트 수 62
골든 비율을

3
TI- 기본?! 좋은!
Dave Kanter

6

파이썬 2, 107 바이트

n=input();h=5
while h:print' '*n+'--O--'+'\n'*h+'____|     |____\n';n-=cmp(n,5);h-=1
print'____|--O--|____'

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

랜딩 비행기의 마지막 줄을 간단히 하드 코딩합니다. 이전의 부품을 재사용하거나 루프에 통합하여 골프를 칠 수 있습니다.



3

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

f=(a,b=5)=>b?" ".repeat(a)+`--O--${`
`.repeat(b)}____|     |____

`+f(a<5?a+1:a-1,b-1):"____|--O--|____"

그것을 테스트

용법

f비행기의 색인으로 전화 하십시오.

f(2)

산출

  --O--




____|     |____

   --O--



____|     |____

    --O--


____|     |____

     --O--

____|     |____

    --O--
____|     |____

____|--O--|____

<s> 스낵 </ s> 스택 스 니펫을 추가 할 수 있습니다
Kritixi Lithos

질문 할 때마다 첫 번째 답변은 Javascript입니다! +1
ElPedro

사람들이 Tryitonline (Javascript로 가능한지 알지 못함) 또는 위에 표시된 10 가지 예에 대한 다른 솔루션을 게시 한 경우 좋을 것입니다. 대신 예를 들어 2의 출력을 게시 할 수 있습니까? :)
ElPedro

@ElPedro, 브라우저 콘솔에서 JavaScript를 실행할 수 있지만 온라인 콘솔도 있습니다. 링크를 추가하겠습니다. 또한 예제를 변경하겠습니다.
Luke

감사. 문제 없다. 나는 당신이 그것을 실행하기 위해 웹 페이지가 필요한 옛날 자바 스크립트에 있습니다. 나는 시간과 함께 가야 할 것 같아요 :) 요즘 더 많은 서버 사이드. 빠르고 멋진 답변을 존중하십시오.
ElPedro

3

스칼라 224 181 바이트

편집 : 나는 당신이 "string"*n그것을 n 번 반복 할 수 있다고 생각하지 못했습니다 ! 스칼라는 계속 내 마음을 날려 버립니다. if(t>0)대신 if(t==0)신인 실수가 누락되었습니다 . 팁 주셔서 감사합니다, 수마 !


def?(x:Int,t:Int=5):Unit={var(p,o)=("--o--","")
o=s"____|${if(t>0)" "*5 else p}|____\n"
for(i<-0 to t)o=if(i!=0&&i==t)" "*x+p+o else "\n"+o
println(o)
if(t>0)?(x-(x-4).signum,t-1)}

원래 말 :

재귀 솔루션이 재미있을 것이라고 생각했습니다. 나는 Scala를 처음 접했기 때문에 이것이 최적이 아니라고 확신합니다.


당신은 읽어보십시오 스칼라에서 골프를위한 팁
corvus_192

필요하지 않습니다 :Unit=. 등호를 생략하면 반환 유형이 단위로 설정됩니다.
corvus_192

또한 o첫 번째 줄에서 초기화하지 않은 이유는 무엇 입니까? 그리고 이후 i항상> = 0, 당신은 변경할 수 i!=0&&i==ti>0&i==t(3 선).
corvus_192

2

배치, 230 바이트

@echo off
set/ax=10-%1
set s=          --O--
for /l %%i in (0,1,4)do call:l %%i
echo ____^|--O--^|____
exit/b
:l
call echo %%s:~%x%%%
for /l %%j in (%1,1,3)do echo(
echo ____^|     ^|____
echo(
set/a"x-=x-5>>3,x+=5-x>>3

x문자열의 시작 부분에서 제거 할 공백의 수 s이므로 10에서 매개 변수를 뺍니다. 마지막 행은 Batch에서 가장 가까운 행입니다 x-=sgn(x-5).


2

sed, 181 바이트 + -nr플래그의 경우 2

s/10/X/
:A
s/^/ /;y/0123456789X/-0123456789/;/[0-9]/bA;s/ -/P\n\n\n\n\n____|P|____/
:B
h;s/P([\n|])/--O--\1/;s/P/     /;s/^ *_/_/;p;/^_/q;x;s/\n//
/^ {5}$/bB;/ {6}/s/  //;s/^/ /;bB

언 골프

# Add leading spaces
s/10/X/
:A
    s/^/ /
    y/0123456789X/-0123456789/
/[0-9]/bA

s/ -/P\n\n\n\n\n____|P|____/

:B
    # Place plane in appropriate spot
    h
    s/P([\n|])/--O--\1/
    s/P/     /
    s/^ *_/_/
    p
    /^_/q
    x

    # Movement
    s/\n//
    /^ {5}$/bB
    # move left one extra, since we'll move right next line
    / {6}/s/  // 
    s/^/ /
bB

용법: $ echo 2 | sed -nrf flightsim.sed


2

망막 , 86 83 바이트

.+
$* --O--¶¶¶¶¶¶____|     |____
{*`$
¶
2D`¶
 ( {5})
$1
}`^ {0,4}-
 $&
 +
--O--
G`_

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

활주로에서 사용할 수있는 압축과 빈 공간이있을 수 있지만 평문보다 비용이 많이 들었습니다 (Retina에서는 ¶ 줄 바꿈이므로 초기 텍스트 상태는 일반 텍스트 두 번째 줄).


2

스칼라 , 177, 163, 159 137 바이트

def p(x:Int,t:Int=5,a:String="\n"):String=a+(if(t>0)
" "*x+"--O--"+"\n"*t+"____|     |____\n"+p(x-(x-4).signum,t-1)else"____|--O--|____")

또 다른 답변을 바탕으로 크게 줄였습니다.


2

펄 6 , 97 90 81 바이트

{say "{"{" "x 15}\n"x 5}____|     |____"~|("\0"x$^h+$_*(17-$h/5)~"--O--") for ^6}

모양과 달리 --o--업데이트 된 작업 설명에서 허용하는대로 소문자 버전의 평면 ( )을 출력합니다 .

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

작동 원리

비트 문자열 연산자 FTW!

{                                                  # Lambda accepting horizontal index $h.
    say                                            # Print the following:
        "{ "{ " " x 15 }\n" x 5 }____|     |____"  # The 15x6 background string,
        ~|                                         # bitwise-OR'd against:
        (
            "\0"                                   # The NULL-byte,
            x $^h + $_*(17 - $h/5)                 # repeated by the plane's offset,
            ~ "--O--"                              # followed by an OR mask for the plane.
        )
    for ^6                                         # Do this for all $_ from 0 to 5.
}

비트 단위 문자열 연산자는 두 문자열에서 주어진 위치에있는 문자의 코드 포인트 값을 사용하여 출력 문자열의 해당 위치에있는 새로운 문자를 계산하기 때문에 작동합니다.
이 경우 :

space  OR  O   =  o
space  OR  -   =  -
any    OR  \0  =  any

대문자 O평면 ~^의 경우 \r\ro\r\r(백 슬래시의 경우 +4 바이트) 평면 마스크와 함께 (문자열 비트 XOR)을 사용할 수 있습니다 .

space  XOR   o  =  O
space  XOR  \r  =  -
any    XOR  \0  =  any

평면 오프셋에 대한 공식은 다음 h + v*(17 - h/5)에서 단순화되었습니다.

  v*16         # rows to the vertical current position
+ h            # columns to the horizontal starting position
+ (5 - h)*v/5  # linearly interpolated delta between horizontal start and goal

1

파이썬 2 , 160 바이트

i,s,p,l,r,c,x=input(),' ','--O--','____|','|____',0,4
while x>=0:print'\n'.join([s*i+p]+[s*15]*x+[l+s*5+r])+'\n';c+=1;x-=1;i=((i,i-1)[i>5],i+1)[i<5]
print l+p+r

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

다음은 384에서 160으로 골프화 된 참조 구현입니다. 여전히 갈 길입니다. 재미를 위해 게시하고 더 나은 Python 답변을 장려했습니다.


당신은 당신 자신의 도전에서 경쟁 할 수 있습니다 ( 이 메타 게시물 참조 ).
Dada

그냥 할 수 while-~x있습니까?
FlipTack

또한 다음과 i같이 더하거나 빼는 비트를 쓸 수 있다고 생각합니다.i+=(i<5)-(i>5)
FlipTack

1

비 펀지-93 136 130 바이트

&5>00p10p55+v
:::00g>:1-\v>:"____|     |_"
>:1-\v^\+55_$"--O--"10g
^\*84_$>:#,_10g::5v>:#,_@
<_v#!:-1g00+`\5\-`<^"____|--O--|____"

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

설명

&                          Read the plane position.
 5                         Initialise the plane height.
  >                        Begin the main loop.

   00p                     Save the current height.
      10p                  Save the current position.
         55+:              Push two linefeed characters.

         "____|     |_"    Push most of the characters for the airport string.
:::                        Duplicate the last character three times to finish it off.

   00g>:1-\v               Retrieve the current height, and then push
      ^\+55_$                that many copies of the linefeed character.

             "--O--"       Push the characters for the plane.

>:1-\v              10g    Retrieve the current position, and then push
^\*84_$                      that many copies of the space character.

       >:#,_               Output everything on the stack in reverse.

            10g::          Retrieve the current position and make two copies to work with.
                 5v        If it's greater than 5
                -`<          then subtract 1.
           +`\5\           If it's less than 5 then add 1.

        g00                Retrieve the current height.
      -1                   Subtract 1.
 _v#!:                     If it's not zero, repeat the main loop.

^"____|--O--|____"         Otherwise push the characters for the landed plane.
>:#,_@                     Output the string and exit.

1

루비, 94 바이트

->a{5.times{|i|puts" "*a+"--O--#{?\n*(5-i)}____|     |____

";a+=5<=>a};puts"____|--O--|____"}

비행기의 위치와 줄 바꿈, 공항을 인쇄합니다. 그런 다음 5를 기준으로 한 위치에 따라 평면을 1, -1 또는 0만큼 이동합니다.

위의 5 번 반복 한 후 공항에서 비행기를 인쇄합니다.


1

8 , 177 172 바이트

: f 5 >r 5 repeat over " " swap s:* . "--O--" . ' cr r> times "____|     |____\n\n" . over 5 n:cmp rot swap n:- swap n:1- dup >r while "____|--O--|____\n" . 2drop r> drop ; 

단어 f는 0과 10 사이의 정수를 예상합니다.

용법

4 f

설명

: f \ n --
  5 >r     \ Push vertical distance from airport to r-stack
  5 repeat 
    \ Print plane
    over " " swap s:* . "--O--" . 
    \ Print airport 
    ' cr r> times "____|     |____\n\n" . 
    \ Now on the stack we have:
    \ distanceFromLeftSide distanceFromAirport
    over      \ Put distance from left side on TOS 
    5 n:cmp   \ Compare left distance and 5. Return
              \ -1 if a<b, 0 if a=b and 1 if a>b
    rot       \ Put distance from left side on TOS   
    swap n:-  \ Compute new distance from left side 
    swap n:1- \ Decrement distance from airport
    dup >r    \ Push new airport-distance on the r-stack  
  while 
  "____|--O--|____\n" .  \ Print final step
  2drop r> drop          \ Empty s-stack and r-stack
;

1

Mathematica, 111 바이트

If[#<1,"____|--O--|____"," "~Table~#2<>"--O--"<>"
"~Table~#<>"____|     |____

"<>#0[#-1,#2+#2~Order~5]]&[5,#]&

익명의 기능. 숫자를 입력으로 사용하고 문자열을 출력으로 반환합니다. 아마도 더 골프를 칠 수있을 것입니다.


1

QBIC , 93 91 84 바이트

:{X=space$(a)+@--O--`┘a=a-sgn(a-5)~t>-1|?X[t|?]t=t-1?@____|`+@     `+_fB|\_xB+A+_fB

X $의 선언을 대체하여 일부 바이트를 삭제했습니다. 지상 거리를 인쇄하는 FOR 루프를 최적화했습니다. 아래 설명은 이전 버전에 대한 것이지만 기본적으로 동일하게 작동합니다.

테스트 (및 미학)를 위해 103 바이트에서 약간 다른 버전을 사용했습니다.

:{_z.5|_CX=Y[a|X=X+@ `]X=X+@--O--`
a=a-sgn(a-5)
~u>0|?X';`[u|?]u=u-1?@____|`+@     `+_fC|\_xC+_tB+_fC

이들은 기능적으로 동일합니다. 두 번째는 화면 사이에서 화면이 지워지고 프레임 사이에서 0.5 초 동안 정지된다는 추가 사항이 있습니다.

샘플 출력

프레임 사이에 줄 바꿈을 두 개 추가했습니다. 위의 가장 골프 코드는 프레임 사이에 빈 줄을 추가하지 않으며 더 멋진 코드는 화면을 지 웁니다.

Command line: 10


          --O--




____|     |____


         --O--



____|     |____


        --O--


____|     |____


       --O--

____|     |____


      --O--
____|     |____


____|--O--|____

설명

이것이 제가 QBIC에 대해 정말로 좋아하는 많은 것들에 영향을 미치고 그 기능 중 일부가 어떻게 작동하는지에 대한 좋은 통찰력을 제공하기 때문에 설명에 약간의 영향을 미쳤습니다. QBIC은 핵심적으로 Codegolf의 QBasic 인터프리터입니다. QBIC 코드가 들어갑니다-QBasic 코드가 나옵니다 (그리고 나중에 실행됩니다).

:{      get the starting offset (called 'a') from the command line, and start a DO-loop

----  cool code only  ----
_z.5|_C At the start of a DO-loop, pause for half a second and clear the screen
---- resume golf-mode ----

---- #1 - The tip of the left wing is anywhere between 0 and 10 positions to the right.
----       Create the plane with the spacing in X$
X=Y          Clear X$
[a|          For each point in the current offset
X=X+@ `]     Add a space to X$
    - Every capital letter in QBIC references that letter+$, a variable of type String
    - @ and ` start and end a string literal, in this case a literal space.
    - ] ends one language construct (an IF, DO or FOR). Here, it's NEXT
X=X+@--O--`  Create the actual plane
    - @ and `once again create a string literal. Every literal that is created in this
      way is assigned its own capital letter. This is our second literal, so the body of
      our plane is stored in B$ (A$ contains the space, remember?)

---- #2 Adjust the offset for the next iteration      
a=a-sgn(a-5) The clever bit: We have an offset X in the range 0 - 10, and 5 attempts to 
             get this to be == 5. X - 5 is either positive (X = 6 - 10), negative 
             (X = 0 - 4) or 0 (X=5). sgn() returns the sign of that subtraction 
             as a 1, -1 or 0 resp. We then sub the sign from 'a', moving it closer to 5.

---- #3 Draw the plane, the empty airspace and the landing strip             
~u>0|     Are we there yet?
    - ~ is the IF statement in QBIC
    - It processes everything until the | as one true/false expression
    - All the lower-case letters are (or better, could be) references to numeric 
      variables. Since QBasic does not need to post-fix those, they double as 'natural' 
      language: ignored by QBIC and  passed as literal code to the QBasic beneath.
    - The lower-case letters q-z are kinda special: at the start of QBIC, these 
      are set to 1 - 10. We haven't modified 'u' yet, so in the first DO-loop, u=5

?X';`     If we're still air-borne, print X$ (our plane, incl. spacers)
    - ? denotes PRINT, as it does in QBasic.
    - ' is a code literal in QBIC: everything until the ` is not parsed, but 
      passed on to QBasic.
    - In this case, we want a literal ; to appear after PRINT X$. This suppresses 
      QBasic's normal line-break after PRINT. This needs to be a code literal 
      because it is the command to read a String var from the command Line in QBIC.
[u|?]     FOR EACH meter above the ground, print a newline
u=u-1     Descent 1 meter
?@____|`  Print the LHS of the landing strip
+@     `  plus 5 spaces
+_fC|     plus the LHS reversed.
\         ELSE - touchdown!
_x        Terminate the program (effectively escape the infinite DO-loop)
    - the _x command has an interesting property: ULX, or Upper/Lowercase Extensibility. 
      Writing this command with an uppercase _X does something similar, yet different. 
      The _x command terminates, and prints everything found between _x and | before 
      quitting. Uppercase _X does not look for |, but only prints something if it is 
      followed by a character in the ranges a-z and A-Z - it prints the contents of 
      that variable.
C+B+_fC   But before we quit, print C$ (the LHS of the landing strip) and the plane, 
          and the LHS flipped.

---- #4 QBIC has left the building
- Did I say _x looks for a | ? Well, that gets added implicitly by QBIC at the end of 
  the program, or when one ( ']' ) or all ( '}' ) opened language constructs are closed.
- Also, all still opened language constructs are automatically closed at EOF.
- Had we stored anything in Z$, that would also be printed at this time.

1

SmileBASIC, 109 105 바이트

G$="_"*4INPUT X
FOR I=0TO 4?" "*X;"--O--";CHR$(10)*(4-I)?G$;"|     |";G$X=X-SGN(X-5)?NEXT?G$;"|--O--|";G$

1

PHP 7, 139 바이트

여전히 몹시 긴

for($x=$argv[1],$d=6;$d--;$x+=5<=>$x)for($i=$p=-1;$i++<$d;print"$s
")for($s=$i<$d?" ":"____|     |____
";!$i&++$p<5;)$s[$x+$p]="--O--"[$p];

명령 행 인수에서 입력을받습니다. 로 실행하십시오 -r.

고장

for($x=$argv[1],                        // take input
    $y=6;$y--;                          // loop height from 5 to 0
    $x+=5<=>$x)                             // post increment/decrement horizontal position
    for($i=$p=-1;$i++<$y;                   // loop $i from 0 to height
        print"$s\n")                            // 3. print
        for($s=$i<$y?" ":"____|     |____\n";   // 1. template=empty or runway+newline
            !$i&++$p<5;)$s[$x+$p]="--O--"[$p];  // 2. if $i=0, paint plane
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.