상자를 동적으로 생성


22

도전 과제 :

ASCII 상자의 사각형을 그립니다 : []

규칙:

너비와 높이 입력을받습니다

둘 다 숫자라고 가정 할 수 있습니다

줄 바꿈 문자가 포함 된 문자열을 생성해야합니다. \ n

예 :

2, 2 :

[][]
[][]

2, 3 :

[][]
[][]
[][]

페 웨스트 바이트가 이깁니다.


2
좋은 첫 포스트! PPCG에 오신 것을 환영합니다!
MD XF

1
숫자가 양수라고 가정 할 수 있습니까? 줄 바꿈 줄이있을 수 있습니까?
dzaima 2016 년

@dzaima 양의 정수, 후행 또는 선행 항목 없음
Robinlemon

콘솔에 인쇄하거나 문자열을 반환해야합니까?
주세페

5
문자 그대로 후행 줄 바꿈을 인쇄 할 수 없으면 어떻게합니까? 하나의 후행 줄 바꿈을 허용하는 것이 좋습니다.
Destructible Lemon

답변:


6

SOGL , 5 바이트

Ƨ[]*∙

단순한:

Ƨ[]    push "[]"
   *   multiply horizontally (repeating width times)
    ∙  get an array with input (height) items of that
       implicitly output the array joined with newlines

4

Mathematica, 26 바이트

Grid@Table["[]",{#2},{#}]&

Mathematica Grid객체는 "개행 문자가있는 문자열"로 계산됩니까?
David Zhang


4

Pyth- 7 5 바이트

insert_name_here 덕분에 영리한 트릭으로 -2 바이트

VE*`Y

여기 사용해보십시오

설명:

VE*`Y
V      # Loop
 E     # <input> number of times
   `Y  # String representation of empty list (used to be "[]", but insert_name_here pointed out this shorter alternative)
  *    # repeat string implicit input number of times
       # implicit print

3
`Y대신 (빈 목록의 문자열 표현)을 사용하여 2 바이트를 저장할 수 있습니다 "[]".
insert_name_here

@insert_name_here 독창적 !! 나는 대답을 업데이트했다. 지적 해 주셔서 감사합니다!
Maria

1
이 정확한 코드를 독립적으로 생각해 냈습니다. 잘 했어요
isaacg 2016 년

4

C, 47 46 바이트

f(w,h){for(h*=w;h--;)printf(h%w?"[]":"[]\n");}

또는

f(w,h){for(h*=w;h--;)printf("[]%c",h%w?0:10);}

내 첫 번째 코드 골프 시도, 나는 명백한 것을 놓쳤습니까?


45 분이 있지만 처음에는 개행 문자가 있습니다 :f(w,h){h*=w;while(h--)printf("\n[]"+!(h%w));}
Conor O'Brien

너비가 2 인 경우에만 작동합니다.
dbandstra

내 실수
Conor O'Brien

위대한 첫 골프! 사이트에 오신 것을 환영합니다!
MD XF

1
for루프를 사용 하면 코드가 더 짧아 지지 않습니까?
Spikatrix


3

; # + , 197 바이트

>;;;;;;~++++++++:>~;;;;:>~*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-::<-::::>-::(;)::>-::*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-:<~<;;;;;-+>-:<-:-(-:::~<-:::(~<#<-;;-#~;)-:<#-::<;>-:-)

온라인으로 사용해보십시오! 각 입력 번호 뒤에 0 바이트가 필요합니다.

나는 이것이 어떻게 작동하는지 모른다. 내가 말할 수있는 것은 코드 의이 부분입니다.

 *(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-::<-::::>-::(;)::>-::*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)

입력 번호를 구문 분석하고 있습니다.


3

brainfuck, 145 바이트

+++++++++[>++++++++++<-]>+[>+>+<<-]>>++>,>+++++++++[<----->-]<--->>>,>+++++++++[<----->-]<--->++++++++++<[<<<[>+>+<<-]>[<<<.>.>>-]>[<<+>>-]>>.<-]

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

내 첫 코드 골프! 예이!

입력은 ascii + 48이므로 50, 50을 수행하려면 b, b (98의 ASCII 문자)를 입력해야합니다.

설명

+++++++++[>++++++++++<-]>+ Get the opening square bracket into first position
[>+>+<<-] Get it into the second and third position
>>++ Get the third position to be the closing bracket
>
,>+++++++++[<----->-]<--- Get first number into fourth cell
>>>
,>+++++++++[<----->-]<--- Get second number into seventh cell
>++++++++++ get newline into 8th position
<

[ Start our height loop
<<<[>+>+<<-] Get the width into the fifth and sixth positions
>[ Start our width loop at the fifth position
<<<.>. Print the second and third positions
>>-] Decrement the fifth position
>
[<<+>>-] copy the sixth position into the fourth position
>>. print newline
<-]

인상적입니다. 사이트에 오신 것을 환영합니다! :)
DJMcMayhem

입력이 왜 ASCII + 48입니까? ASCII + 0 입력만으로도 많은 바이트를 절약 할 수 있습니다 (사용성을 위해 ASCII + 48 버전에 연결 가능)
CalculatorFeline

방금 입력 기준 인 @calculatorFeline
vityavv

... 아 맞다. : |
CalculatorFeline



2

젤리 , 7 바이트

ẋ⁾[]ẋ$Y

문자 목록을 리턴하는 2 진 링크 (또는 결과를 인쇄하는 전체 프로그램).

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

방법?

ẋ⁾[]ẋ$Y - Main link: number w, number h          e.g. 2, 3
ẋ       - repeat w h times                            [2,2,2]
     $  - last two links as a monad:
 ⁾[]    -   literal ['[',']'],                        "[]"
    ẋ   -   repeat list (vectorises)                  ["[][]","[][]","[][]"]
      Y - join with newlines                          "[][]\n[][]\n[][]"
        - if a full program, implicit print





2

PowerShell, 25 바이트

param($w,$h),("[]"*$w)*$h

Mathias 덕분에 -3!


다음과 같이 25로 줄일 수 있습니다.param($w,$h),("[]"*$w)*$h
Mathias R. Jessen

2

apt , 13 12 + 1 = 14 13 바이트

-R깃발 은 +1입니다 .

"[]"pN× òU*2

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

  • obarakon 덕분에 1 바이트가 절약되었습니다.

약간의 음주를 할 수 있다는 때로는 프로그래밍 기술을 도울 생각 : P
ETHproductions

@ETHproductions : 내가 찾던 만화는 너무 술에 취해서 찾을 수 없었습니다!
얽히고 설킨

하하, 즐거운 밤 보내길 바랍니다. fyi, U*V단축 될 수 있습니다
Oliver

1
@obarakon : N지난 밤 에 작업 할 수있는 두 가지 기회 입니다. 술을 마시지 마십시오.
Shaggy


2

, 8 7 바이트

EN×[]Iη

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 순서의 높이, 너비로 입력을받습니다. 숯의 드로잉 프리미티브는 이것에 적합하지 않으므로 쉽게 빠져 나갈 수 있고 []문자열을 적절하게 반복합니다 . 설명:

 N      First input as a number
E       Map over implcit range
      η Second input
     I  Cast to number
   []   Literal string
  ×     Repeat
        Implicitly print on separate lines

글쎄요, 이것에 대한 그림 프리미티브가 있지만 여전히 8 바이트입니다 . : P
ASCII 전용

@ ASCII-only 죄송합니다. Oblong이 임의의 문자열에서 작업 한 것을 몰랐습니다. 산뜻한!
Neil

@ASCII 전용 오, 그리고 사전 정의 된 빈 문자열 변수의 자세한 이름은 무엇입니까?
Neil

그것은이다 w, 이름 , 장황 그리스어
ASCII 전용

@ ASCII-only 그렇다면 내가 뭘 잘못하고 있니 ?
Neil


1

Japt , 7 바이트

6 바이트 코드, -R플래그는 +1

VÆç"[]

의 버그로 인해 최신 버전 ç에서는 작동하지 않지만 commitf619c52 에서 작동 합니다. 온라인으로 테스트하십시오!

설명

VÆ   ç"[]
VoX{Uç"[]"}  // Ungolfed
             // Implicit: U, V = input integers
VoX{      }  // Create the range [0...V) and replace each item X with
    Uç"[]"   //   U copies of the string "[]".
-R           // Join the result with newlines.
             // Implicit: output result of last expression


1

QBIC , 14 바이트

[:|?[:|?@[]`';

설명:

[:|     FOR a = 1 to (read input from cmd line)
?       PRINT a newlne
[:|     FOR c = 1 to (read input from cmd line)
?@[]`   PRINT A$ (containing the box)
';         and inject a semicolon in the compiled QBasic code to suppress newlines

이것은 #rows, #cols의 순서로 인수를 취합니다. 출력은 개행으로 시작합니다.




1

C #, 78 바이트

(w,h)=>"".PadLeft(h).Replace(" ","".PadLeft(w).Replace(" ","[]")+'\n').Trim();

C # 패드에서 실행

이것은 for-loops보다 짧으며 더 적은 코드로 반복 할 수있는 C #의 기능을 알지 못합니다.



1

자바 스크립트 (ES6), 43 36 바이트

주석에서 후행 줄 바꿈이 허용됩니다.

w=>h=>("[]".repeat(w)+`
`).repeat(h)

시도 해봐

f=
w=>h=>("[]".repeat(w)+`
`).repeat(h)
oninput=_=>o.innerText=f(+i.value)(+j.value);o.innerText=f(i.value=2)(j.value=2)
*{font-family:sans-serif;}
input{margin:0 5px 0 0;width:50px;}
<label for=i>w: </label><input id=i type=number><label for=j>h: </label><input id=j type=number><pre id=o>



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