살틴 챌린지


23

다음은 ASCII saltine cracker입니다 .

 _________________
|  .     .     .  |
|     .     .     |
|  .     .     .  |
|     .     .     |
|  .     .     .  |
|_________________|

다음은 두 개의 크래커입니다.

 _________________
|  .     .     .  |
|     . __________|______
|  .   |  .     .     .  |
|     .|     .     .     |
|  .   |  .     .     .  |
|______|     .     .     |
       |  .     .     .  |
       |_________________|

양의 정수를 취하고 많은 ASCII 염분 크래커의 스택을 그리는 가능한 가장 짧은 프로그램을 작성하십시오.

입력은 stdin, 명령 행에서 오거나 단순히 함수를 작성할 수 있습니다. 입력은 항상 유효합니다. 출력은 stdout 또는 가장 가까운 대안으로 이동해야합니다.

각 쌓인 크래커는 항상 그 아래 크래커 오른쪽에서 2 자 아래로, 7 자 오른쪽으로 이동합니다. 뒤에 공백이나 불필요한 줄 바꿈이 없어야합니다.

바이트 단위 의 최단 프로그램 이깁니다.

입력이 1출력 인 경우

 _________________
|  .     .     .  |
|     .     .     |
|  .     .     .  |
|     .     .     |
|  .     .     .  |
|_________________|

입력이 2출력 인 경우

 _________________
|  .     .     .  |
|     . __________|______
|  .   |  .     .     .  |
|     .|     .     .     |
|  .   |  .     .     .  |
|______|     .     .     |
       |  .     .     .  |
       |_________________|

입력이 3출력 인 경우

 _________________
|  .     .     .  |
|     . __________|______
|  .   |  .     .     .  |
|     .|     . __________|______
|  .   |  .   |  .     .     .  |
|______|     .|     .     .     |
       |  .   |  .     .     .  |
       |______|     .     .     |
              |  .     .     .  |
              |_________________|

등등.

진짜 소금물 도전


1
아래 크래커의 외곽선이 어떻게 위의 크래커의 외곽선을 어떻게 재정의합니까?
자부심을 가진 haskeller

1
Calvin'sHobbies @ : 스택 크래커의 상단 테두리 왜 나는 그가의 질문을 생각 ___|___대신 _______. 후자라면 이상하게 보일 것 같아요
Claudiu

2
@ 클라우드 오. 네, 완벽하지는 않지만 다른 방식으로 이상하게 보입니다.
Calvin 's Hobbies

6
@ Calvin'sHobbies 사실, 나는 단일 캐릭터가이 도전에서 가장 흥미로운 부분이라고 생각합니다. ^^
Martin Ender

3
0을 전달하면 segfault가되어야합니다.
Naftuli Kay

답변:


4

CJam, 140 125 119 116 바이트

li__7*C+S*a\2*5+*\{5m>S'|6*+_" ."5*5/{'__@\++}:U%3*0@t{S5*U_}%\a+zsB'|tJ/{\(J>@\+a+}/{7m<}%}*{Cm<0{;)_' =}g+}%N*B'_t

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

단일 염분

코드 스 니펫

S'|6*+_      " Push ' ||||||' twice.                                                      ";
" ."5*5/     " Push [' . . ' '. . .'].                                                    ";
{'__@\++}:U% " Prepend and append an underscore to each string in the previous array.     ";
3*           " Repeat the resulting array thrice.                                         ";
0@t          " Replace its first element with ' ||||||'.                                  ";
{S5*U_}%     " Insert '_     _' after each element of the array.                          ";
\a+          " Append ' ||||||' to the array.                                             ";
z            " Zip; transpose rows with columns.                                          ";
sB'\t        " Flatten the array of strings and replace the 12th element with a '|'.      ";
19/          " Split into chunks of length 19.                                            ";

스택에 다음을 남겨 둡니다.

[
  " __________|______ "
  "|  .     .     .  |"
  "|     .     .     |"
  "|  .     .     .  |"
  "|     .     .     |"
  "|  .     .     .  |"
  "|_________________|"
]

누적 된 saltines

위에서 saltine이 Z에 저장되었다고 가정하십시오.

li               " I := int(input())                                                      ";
__7*C+S*a\2*5+*  " R:= [(I * 7 + 12) * ' '] * (I * 2 + 5)                                 ";
\{               " Repeat I times:                                                        ";
  5m>            "   R := R[-5:] + R[:-5]                                                 ";
  Z              "   Push a single saltine, as an array of lines.                         ";
  {              "   For each line L of the saltine:                                      ";
    \(J>@\+a+    "     R := R[1:] + [R[0][19:] +     L]                                   ";
  }/             "                                                                        ";
  {7m<}%         "   R := [ L[7:] + L[:7] : L in R ]                                      ";
}*               "                                                                        ";
{                " R := [                                                                 ";
  Cm<            "   (L[12:] + L[:12])                                                    ";
  0{;)_' =}g+    "                    .rstrip()                                           ";
}%               " : L in R ]                                                             ";
N*               " R := '\n'.join(R)                                                      ";
B'_t             " R[11] := '|'                                                           ";

11

자바 스크립트 (E6) 24959 289 304345

문자열 압축에 대해 확신이 없습니다. 현을위한 좋은 압축을 찾았습니다. 간단한 1 개의 크래커 케이스는 관리하기 어려운 것 같습니다. 더 좋은 방법이있을 수 있습니다 ...

F=n=>{
  for(B=",|4.,|1.2,|1.4.4.1|,|5,|4.4.4|, 9|5, 87 ,|87|".replace(/\d/g,c=>' _'[c>4|0][R='repeat'](-~c)).split(','),
  O=(c,b=0,a=0)=>console.log(' '[R](y)+B[a]+B[b][R](x)+B[c]),
  r=x=y=0,
  O(7);
  O(3,2),
  !(z=++r>2)|x;)
    x+=(v=r<n)-z,O(v+5,1,z*4),y+=z*7;
  O(8)
}

Ungolfed 더 많거나 적은

이것이 골프를 시작하기 전에 기본 코드입니다. 정확히 동일하지 않으며 n> 2에서만 작동합니다.

F=n=>{
  O=t=>console.log(t)

  r=0
  x=0
  y=0

  O(' _________________')
  O(' '.repeat(y)+'|  .   '.repeat(x)+'|  .     .     .  |')

  while (++r<n)
  {
    x++;
    if (r>2)
    {
       x--;
       O(' '.repeat(y)+'|______'+'|     .'.repeat(x)+' __________|______')
       y+=7;
       O(' '.repeat(y)+'|  .   '.repeat(x)+'|     .     .     |')
    }
    else
    {
       O(' '.repeat(y)+'|     .'.repeat(x)+' __________|______')
       O(' '.repeat(y)+'|  .   '.repeat(x)+'|  .     .     .  |')
    }

  }  
  while(x--)
  {
     O(' '.repeat(y)+'|______'+'|     .'.repeat(x)+'|  .     .     .  |')
     y+=7;
     O(' '.repeat(y)+'|  .   '.repeat(x)+'|     .     .     |')
  }

  O(' '.repeat(y)+'|_________________|')
}

FireFox / FireBug 콘솔에서 테스트

F(4)

산출

 _________________
|  .     .     .  |
|     . __________|______
|  .   |  .     .     .  |
|     .|     . __________|______
|  .   |  .   |  .     .     .  |
|______|     .|     . __________|______
       |  .   |  .   |  .     .     .  |
       |______|     .|     .     .     |
              |  .   |  .     .     .  |
              |______|     .     .     |
                     |  .     .     .  |
                     |_________________|

8

파이썬, (252) 241 자

s="eJxTiIeDGgiloBBRo6CgpwACcLIGJKaAKlxDmbp4dFADAL+oIFI=".decode('base64').decode('zip').split('X')
N=input()
R=range
G=map(list,[' '*(7*N+12)]*(2*N+5))
for n in R(N):
 for y in R(7):G[2*n+y][7*n:]=s[y]
G[0][11]='_'
for g in G:print''.join(g)

11자를 잘라낸 FryAmTheEggman과 Vincent에게 감사합니다.

크래커의 우세 :

$ echo 17 | python saltines.py
 _________________
|  .     .     .  |
|     . __________|______
|  .   |  .     .     .  |
|     .|     . __________|______
|  .   |  .   |  .     .     .  |
|______|     .|     . __________|______
       |  .   |  .   |  .     .     .  |
       |______|     .|     . __________|______
              |  .   |  .   |  .     .     .  |
              |______|     .|     . __________|______
                     |  .   |  .   |  .     .     .  |
                     |______|     .|     . __________|______
                            |  .   |  .   |  .     .     .  |
                            |______|     .|     . __________|______
                                   |  .   |  .   |  .     .     .  |
                                   |______|     .|     . __________|______
                                          |  .   |  .   |  .     .     .  |
                                          |______|     .|     . __________|______
                                                 |  .   |  .   |  .     .     .  |
                                                 |______|     .|     . __________|______
                                                        |  .   |  .   |  .     .     .  |
                                                        |______|     .|     . __________|______
                                                               |  .   |  .   |  .     .     .  |
                                                               |______|     .|     . __________|______
                                                                      |  .   |  .   |  .     .     .  |
                                                                      |______|     .|     . __________|______
                                                                             |  .   |  .   |  .     .     .  |
                                                                             |______|     .|     . __________|______
                                                                                    |  .   |  .   |  .     .     .  |
                                                                                    |______|     .|     . __________|______
                                                                                           |  .   |  .   |  .     .     .  |
                                                                                           |______|     .|     . __________|______
                                                                                                  |  .   |  .   |  .     .     .  |
                                                                                                  |______|     .|     .     .     |
                                                                                                         |  .   |  .     .     .  |
                                                                                                         |______|     .     .     |
                                                                                                                |  .     .     .  |
                                                                                                                |_________________|

이 코드는 실제로 비효율적 인 것처럼 보이지만 다른 답변이 말할 것입니다. 단지 saltine 크래커를 복사하여 오른쪽 자리의 배열에 붙여넣고 맨 아래 크래커가 1자인 것을 설명한 다음 모두 인쇄합니다.

외부 파일 (202 코드 + 38 파일 크기 + 1 파일 이름)을 사용하면 230 자로 줄일 수 있습니다 .


11
n=1 upto 2^10귀하의 프로그램이 실제로 올바른 일을 수행 할 수 있도록 모든 출력을 보여주십시오 .
flawr

list(' '*(7*N+12))될 수 있습니다 [' ']*(7*N+12).
FryAmTheEggman

1
@flawr : 선생님, 당신이 할 말입니까-당신이 아시나요?
Claudiu

1
@Claudiu 나는 심지어 당신에게 실리를 만질 수없는 행동에 대해 당신을 해칠 생각조차하지 않을 것이라고 확신 할 수 있습니다. = P
flawr

1
그리고 G=[list(' '*(7*N+12))for _ in R(2*N+5)]G=map(list,[' '*(7*N+12)]*(2*N+5))
빈센트

7

펄 189

choroba에서 문자열 압축 아이디어를 훔쳐서 다음과 같이 정리했습니다.

echo 4 | perl -E 's/\d/($&<8?$":_)x$&/ge for@l=("|2.5.5.2|"," 98","|5.5.5|","|98|",7)[102020344=~/./g];map{say for@l[0,1];$l[$_]=substr($l[$_+2],0,7).$l[$_]for 0..6;substr$l[0],-7,1,"|"}2..<>;say for@l[0..6]'

브라우저에서보다 쉽게 ​​보려면 :

s/\d/($&<8?$":_)x$&/ge for@l=
("|2.5.5.2|"," 98","|5.5.5|","|98|",7)[102020344=~/./g];map{
    say for@l[0,1];
    $l[$_]=substr($l[$_+2],0,7).$l[$_]for 0..6;
    substr$l[0],-7,1,"|"
}2..<>;say for@l[0..6]

문맥 상, 그 전에 나의 최선의 것 :

펄 207

$u='_'x11;s/:/ .  /g,s/.(.)/$&$1/g,$_.=$/for@l=("|:: . |"," $u","|  :: |","|$u|",$"x5)[102020344=~/./g];map{print@l[0,1];$l[$_]=substr($l[$_+2],0,7).$l[$_]for 0..6;substr$l[0],-8,1,'|'}2..pop;print@l[0..6]

브라우저에서 쉽게 읽을 수 있도록 줄 바꿈과 들여 쓰기 추가 :

$u="_"x11;
s/:/ .  /g,s/.(.)/$&$1/g,$_.=$/for@l=
("|:: . |"," $u","|  :: |","|$u|",$"x5)[102020344=~/./g];
map{
    print@l[0,1];
    $l[$_]=substr($l[$_+2],0,7).$l[$_]for 0..6;
    substr$l[0],-8,1,"|"
}2..pop;
print@l[0..6]

"pop"을 "<>"로 바꾸면 명령 줄 매개 변수 대신 STDIN에서 카운트를 가져와 206 바이트에이를 수 있습니다. STDERR로 이동하면 204 바이트로 떨어집니다.

바이트 페널티없이 'say'기능을 활성화 할 수 있다면 202에 도달 할 수 있습니다.

$u="_"x11;s/:/ .  /g,s/.(.)/$&$1/g for@l=("|:: . |"," $u","|  :: |","|$u|",$"x5)[102020344=~/./g];map{say for@l[0,1];$l[$_]=substr($l[$_+2],0,7).$l[$_]for 0..6;substr$l[0],-7,1,"|"}2..<>;say for@l[0..6]

다음과 같이 호출됩니다.

echo 4 | perl -E '$u="_"x11;s/:/ .  /g,s/.(.)/$&$1/g for@l=("|:: . |"," $u","|  :: |","|$u|",$"x5)[102020344=~/./g];map{say for@l[0,1];$l[$_]=substr($l[$_+2],0,7).$l[$_]for 0..6;substr$l[0],-7,1,"|"}2..<>;say for@l[0..6]'

say명령 행에서 -E대신 실행하는 것과 동일하기 때문에 패널티없이 사용할 수 있습니다 -e. perl -E''총 캐릭터 수에 포함되지 않습니다.
hmatt1

출력이 잘못되었습니다. 를 확인하십시오 _|_.
choroba

@choroba, 감사합니다! 나는 그 substr을 y / | / _ /로 바꾸려고 시도한 후에 (그러나 항상 더 긴 코드로 끝나는) 것을 다시 잊어 버렸습니다. 168에서 189.
Tye

4

펄 201

(첫 번째 줄을 제외한 줄 바꿈을 제거하여 #을 얻으십시오)

$_=" 46|6
15.5.5|15.5.5|198|";
s/1/|  .5.5.  ||/g;
s/\d/(5^$&?_:$")x$&/ge;
@o=@l=/.{18}.?/g;
map{
$s=$_*7;
substr$o[$_-5],$s,12,$l[$_]for 0..4;
push@o,($"x$s).$l[$_]for 5,6
}1..-1+pop;
$o[$,=$/]=~y/|/_/;
print@o

say+ <>= 198.


"뒤에 공백이 없어야합니다"
Tye

@Tye : OK, 202로 돌아 가기 :-(
choroba

2

하스켈, 215 바이트

이것은 크래커 스택을 유도 적으로 만들어 크래커 부품을 당기고 몇 가지 주기적 목록에서 간격을 둡니다.

(b:u:i)=" _|"
(%)=replicate
z=5%b++'.':z
m!n=i++map(z!!)[m..n]
s=7%b:s
d=3!19++i
e=0!16++i
y=i++6%u
g 1=[e,d,e,d,i++17%u++i]
g k=zipWith(++)(0!5:3!8:0!5:3!8:y:s)$(b:10%u++y):d:g(k-1)
f k=mapM putStrLn$(b:17%u):d:g k

제어 흐름은 매우 간단합니다. 속임수의 대부분은 크래커 부품을 최대한 재사용하는 것입니다.

언 골프 드 :

top     = " _________________"
top'    = " __________|______"
dots3   = "|  .     .     .  |"
dots2   = "|     .     .     |"
bot     = "|_________________|"

halfR   = "|     ."
halfL   = "|  .   "
halfBot = "|______"

spacer  = "       "
spaces = repeat spacer

saltine = above ++ [dots2, dots3, dots2, dots3, bot]
above   = [top, dots3]
left    = [halfR, halfL, halfR, halfL, halfBot] ++ spaces

another (oldTop:oldCracker) = above ++ zipWith (++) left (top' : oldCracker)

crackers 1 = saltine
crackers k = another $ crackers (k - 1)

test = putStr . unlines . crackers

1

파이썬, 299

나는 영리하다고 생각했지만 솔루션이 너무 복잡하고 직접적인 접근 방식보다 길다는 것이 밝혀졌지만 게시를 거부 할 수 없었습니다. 프로그램은 개별 크래커를 반복하지 않고 출력 문자열의 다른 위치에 어떤 문자를 플롯해야하는지 명시 적으로 계산합니다.

N=input()
m,n,c,r=12+7*N,5+2*N,3.5,range
print''.join(i>m-2and'\n'or(i%7<(i/c<j<7+i/c)*(i<N*7)or(i+4)%7<(i/c<j+4<2+4*(i>m-3)+i/c)*(i>16))and'|'or j%2<(j*c<i<17+j*c)*(j<n-5)+(j*c<i+22<8+10*(j>n-3)+j*c)*(j>5)and'_'or(i-j*3-min(i/7,~-j/2,N-1)+1)%6<(-3<-~i/7-j/2<3)and'.'or' 'for j in r(n)for i in r(m))

그리고 마지막 줄은 현재 상황을 확인하기 위해 확장되었습니다.

print ''.join(
              '\n' if i>m-2 else
              '|' if i%7<(i/c<j<7+i/c)*(i<N*7) or (i+4)%7<(i/c<j+4<2+4*(i>m-3)+i/c)*(i>16) else
              '_' if j%2<(j*c<i<17+j*c)*(j<n-5)+(j*c<i+22<8+10*(j>n-3)+j*c)*(j>5) else
              '.' if (i-j*3-min(i/7,~-j/2,N-1)+1)%6<(-3<-~i/7-j/2<3) else
              ' '
              for j in r(n)
              for i in r(m)
             )

1

C, 284

불필요한 공백을 제외한 함수 f#defines의 경우 및 main. edc65의 의견에 따르면, 128 비트 정수 유형 (어쨌든 할 것임)을 포함했지만 다시 잘못 계산 했으며 상단이 사라지기 전에 29 개의 크래커 만 할 수 있습니다.

아래의 기능 및 테스트 프로그램을 완료하십시오. 나중에 의견을 말하겠습니다.

#define C b,b,c,b,b
#define S s[i/v*7-i%v
f(n){
  __int128 a=4095,b=a+2,c=6281,d=4641,w=998,v=19,s[998]={a,C,d,C,d,C,a},i=v;
  for(;i<n*v;i++)S+18]|=S+11]*16&-1<<(12+i/v*2-i%v/18)*(i%v>7); 
  for(i=(5+n*2)*w;i--;i%w||puts(""))i%w>i/w/2*7-21+i/w%2*6&&s[i%w]&&putchar(" _.|"[(s[i%w]>>i/w*2)&3]);
}


main(){
  int m;
  scanf("%d",&m);f(m);
}

출력에는 4 개의 다른 문자 만 있습니다. 이들은 이진수 0-3부터로 디코딩됩니다 " _.|". 이 배열 s[]에는 출력의 각 열에 대한 정수 (심볼 당 2 비트)가 포함되며 가장 오른쪽 크래커를 포함하도록 초기화됩니다.

첫 번째 for루프는 이전 크래커를 복사하고, 왼쪽으로 이동하여 위로 이동하고, 오른쪽 아래 모서리를 사용하여 삭제하고 &, 이전 크래커를 사용하여 왼쪽으로 7 단계 왼쪽으로 이동합니다.

두 번째 for루프는 각 문자의 2 비트 표현을 실제 문자로 디코딩하고 문자를 인쇄합니다. 출력에 불필요한 공백을 억제하기 위해 많은 코드가 있습니다. 이전 개정판보다 점수가 하락한 것에 실망했습니다.

산출

크래커 29 명입니다. 나는 공간을- 다른 모습을 위해, 그리고 쇼 출력에 후행 공백이나 관계없는 줄 바꿈이.

-_________________
|--.-----.-----.--|
|-----.-__________|______
|--.---|--.-----.-----.--|
|-----.|-----.-__________|______
|--.---|--.---|--.-----.-----.--|
|______|-----.|-----.-__________|______
-------|--.---|--.---|--.-----.-----.--|
-------|______|-----.|-----.-__________|______
--------------|--.---|--.---|--.-----.-----.--|
--------------|______|-----.|-----.-__________|______
---------------------|--.---|--.---|--.-----.-----.--|
---------------------|______|-----.|-----.-__________|______
----------------------------|--.---|--.---|--.-----.-----.--|
----------------------------|______|-----.|-----.-__________|______
-----------------------------------|--.---|--.---|--.-----.-----.--|
-----------------------------------|______|-----.|-----.-__________|______
------------------------------------------|--.---|--.---|--.-----.-----.--|
------------------------------------------|______|-----.|-----.-__________|______
-------------------------------------------------|--.---|--.---|--.-----.-----.--|
-------------------------------------------------|______|-----.|-----.-__________|______
--------------------------------------------------------|--.---|--.---|--.-----.-----.--|
--------------------------------------------------------|______|-----.|-----.-__________|______
---------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
---------------------------------------------------------------|______|-----.|-----.-__________|______
----------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
----------------------------------------------------------------------|______|-----.|-----.-__________|______
-----------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
-----------------------------------------------------------------------------|______|-----.|-----.-__________|______
------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
-------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
-------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
--------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
--------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
---------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
---------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
----------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
----------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
-----------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
-----------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
-------------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
-------------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
--------------------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
--------------------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
---------------------------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
---------------------------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
----------------------------------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
----------------------------------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
-----------------------------------------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-__________|______
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--.---|--.---|--.-----.-----.--|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|______|-----.|-----.-----.-----|
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--.---|--.-----.-----.--|
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|______|-----.-----.-----|
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--.-----.-----.--|
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|_________________|

질문에는 최대 값이 없었으며 "양의 정수"였습니다. 1에서 5까지는 양의 정수에 대한 아이디어입니까?
edc65

@ edc65 더 많은 바이트의 경우 32 비트 대신 128 비트 정수 유형을 사용할 수 있습니다. 크래커를 최대 56 개까지 가져 가면 충분합니다 (20kb 이상의 출력). 시작했을 때 32 비트 정수로 얻을 수있는 크래커 수를 잘못 계산했음을 인정합니다. 최소한 10 개라고 생각했습니다. 그러나 그렇습니다. 모든 프로그램은 그들이 생산할 수있는 크래커의 수에 대한 상한을 가지고 있으며 그것이 무엇인지 결정하는 것은 OP에 달려 있습니다. 그것은 해야한다 질문에 지정 될 수있다. 그대로 나는 내 대답의 타당성에 대한 OP의 판결을 받아 들일 것입니다 (완료되지 않았습니다)
Level River St

0

자바 스크립트 (ES6) HTML5 - 233 236 바이트

아마 올바른 대답은 아니지만 게시에 저항 할 수 없었습니다. 죄송합니다 :-P

F=n=>{d="______";b="\n|  .     .     .  |";a=b+"\n|     .     .     |";for(i=0;i<n;)document.body.innerHTML+="<pre style='background:#fff;position:fixed;top:"+i*28+"px;left:"+i*56+"px'> ____"+d+'|_'[+!i++]+d+a+a+b+"\n|"+d+d+"_____|"}

파이어 폭스에서 함께 테스트 F(1), F(2),F(3) , 등

예 : http://jsfiddle.net/Lvmg9fe8/7/


JavaScript를 모르지만이 Fiddle은 아무 것도하지 않는 것 같습니다 (다른 Fiddles는 문제없이 실행할 수 있습니다). Chrome 및 Internet Explorer가 있습니다.
Level River St

@steveverrill은 JavaScript로 판매되는 거의 모든 것과 같이 Firefox에서만 작동합니다. Chrome 및 IE는 EcmaScript 6을 지원하지 않습니다.
나와 내 고양이

그것은 내가 찾고있는 것이 아니지만 Firefox에서 작동합니다.)
Calvin 's Hobbies

F(1)Firefox에서 JS 콘솔에이 코드를 입력 한 후 입력 하거나 다른 번호를 입력 할 때마다 "정의되지 않은"응답을 받고 있습니다 .
WallyWest
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.