Thử thách muối


23

Đây là một cracker muối ASCII :

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

Đây là hai bánh quy xếp chồng lên nhau:

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

Viết chương trình ngắn nhất có thể có một số nguyên dương và rút ra một chồng nhiều bánh quy muối ASCII đó.

Đầu vào có thể đến từ stdin, dòng lệnh hoặc bạn có thể chỉ cần viết một hàm. Đầu vào sẽ luôn hợp lệ. Đầu ra phải đi đến thiết bị xuất chuẩn hoặc thay thế gần nhất.

Mỗi cracker xếp chồng luôn được chuyển 2 ký tự xuống và 7 ký tự bên phải của cracker bên dưới nó. Không nên có không gian dấu hoặc dòng mới.

Chương trình ngắn nhất tính bằng byte thắng.

Ví dụ

Nếu đầu vào là 1đầu ra là

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

Nếu đầu vào là 2đầu ra là

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

Nếu đầu vào là 3đầu ra là

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

Và như vậy.

thử thách muối thực sự


1
Làm thế nào để phác thảo của cracker dưới đây ghi đè lên phác thảo của cái ở trên nó?
tự hào

1
@ Calvin'sHob sở thích: Tôi nghĩ rằng anh ấy đang đặt câu hỏi tại sao đường viền trên cùng của bánh quy xếp chồng lên nhau ___|___thay vì _______. Tôi đoán nó sẽ trông kỳ lạ nếu nó là cái thứ hai
Claudiu

2
@Claudiu ơi. Vâng, nó không hoàn hảo nhưng nó trông lạ hơn theo cách khác.
Sở thích của Calvin

6
@ Calvin'sHob sở thích Trên thực tế, tôi nghĩ rằng nhân vật duy nhất là phần thú vị nhất của thử thách này. ^^
Martin Ender

3
Vượt qua 0 nên segfault.
Naftuli Kay

Câu trả lời:


4

CJam, 140 125 119 116 byte

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

Hãy thử trực tuyến.

Một muối

Đoạn mã

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.                                            ";

để lại các mục sau trên ngăn xếp:

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

Muối xếp chồng lên nhau

Giả sử muối từ trên được lưu trong 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

JavaScript (E6) 249 259 289 304 345

Không tự tin về nén chuỗi. Tìm thấy một nén tốt cho các chuỗi. Trường hợp 1 cracker đơn giản có vẻ khó quản lý. Có thể có một cách tốt hơn ...

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)
}

Ung ít nhiều

Đó là mã cơ bản, trước khi tôi bắt đầu chơi golf. Nó không hoàn toàn giống nhau và chỉ hoạt động với 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)+'|_________________|')
}

Kiểm tra trong bảng điều khiển FireFox / FireBug

F(4)

Đầu ra

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

8

Con trăn, 252 241 ký tự

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)

Cảm ơn FryAmTheEggman và Vincent đã cắt bỏ 11 ký tự.

Một ưu thế của bánh quy giòn:

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

Mã này có vẻ thực sự không hiệu quả, nhưng các câu trả lời khác sẽ cho biết. Nó chỉ sao chép và dán cracker muối vào một mảng ở đúng vị trí, chiếm phần lớn nhất là cracker dưới 1 ký tự, sau đó in tất cả.

Tôi có thể giảm xuống 230 ký tự nếu tôi sử dụng tệp bên ngoài (mã 202 + 38 tệp kích thước + 1 tên tệp).


11
Vui lòng hiển thị mọi đầu ra n=1 upto 2^10để chúng tôi có thể chắc chắn rằng chương trình của bạn thực sự làm đúng.
flawr

list(' '*(7*N+12))có thể [' ']*(7*N+12).
FryAmTheEggman

1
@flawr: Thưa ông, có phải là để nói - bạn đang nói - bạn, à, ám chỉ - ám chỉ hoặc có lẽ chỉ gợi ý, rằng tôi đang ngớ ngẩn?
Claudiu

1
@Claudiu Tôi có thể đảm bảo rằng tôi thậm chí sẽ không dám nghĩ đến việc ám chỉ bạn về một hành động thậm chí sẽ chỉ có một cảm giác ngớ ngẩn của sillynes. = P
flawr

1
G=[list(' '*(7*N+12))for _ in R(2*N+5)]vớiG=map(list,[' '*(7*N+12)]*(2*N+5))
Vincent

7

Perl 189

Ăn cắp một số ý tưởng nén chuỗi từ choroba, tôi đã đưa nó xuống:

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]'

Để xem dễ dàng hơn trong trình duyệt của bạn:

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]

Đối với bối cảnh, tốt nhất của tôi trước đó:

Perl 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]

Thêm dòng mới và thụt lề để dễ đọc trong trình duyệt của bạn:

$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]

Bạn có thể thay thế "pop" bằng "<>" để lấy số đếm từ STDIN thay vì làm tham số dòng lệnh và nhận được tới 206 byte. Đi đến STDERR sẽ thả nó xuống 204 byte.

Nếu tôi có thể kích hoạt tính năng 'nói' mà không bị phạt byte, thì tôi có thể đến 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]

được gọi là:

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]'

Bạn được phép kích hoạt saymà không bị phạt vì nó giống như chạy trên dòng lệnh -Ethay vì -e. perl -E''không được tính vào tổng số ký tự của bạn.
hmatt1

Đầu ra của bạn không chính xác. Kiểm tra _|_.
choroba

@choroba, cảm ơn! Tôi đã quên đặt lại lớp nền đó sau khi cố gắng thay thế nó bằng y / | / _ / (nhưng luôn kết thúc bằng mã dài hơn). Từ 168 đến 189.
Tye

4

Perl 201

(xóa các dòng mới ngoại trừ dòng đầu tiên để có #)

$_=" 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.


"Không nên có dấu cách"
Tye

@Tye: OK, quay lại 202 :-(
choroba

2

Haskell, 215 byte

Cái này xây dựng ngăn xếp cracker theo cách tự cảm, kéo các bộ phận của cracker và tách ra khỏi một vài danh sách tuần hoàn:

(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

Luồng điều khiển khá đơn giản; hầu hết các mánh khóe là sử dụng lại càng nhiều bộ phận cracker càng tốt.

Ung dung:

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

Con trăn, 299

Tôi nghĩ rằng tôi đã thông minh nhưng giải pháp hóa ra quá phức tạp và dài hơn bất kỳ cách tiếp cận thẳng nào, nhưng tôi không thể cưỡng lại việc đăng nó. Chương trình tính toán rõ ràng nhân vật nào phải được vẽ ở các vị trí khác nhau của chuỗi đầu ra, mà không lặp qua các bộ bẻ khóa riêng lẻ.

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))

Và dòng cuối cùng được mở rộng để xem những gì đang diễn ra:

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

Đối với hàm f#defines, không bao gồm khoảng trắng không cần thiết vàmain . Theo nhận xét của edc65, tôi đã bao gồm loại số nguyên 128 bit (dù sao tôi cũng sẽ làm điều đó) nhưng tôi đã tính toán lại và tôi chỉ có thể thực hiện 29 lần bẻ khóa trước khi ngọn bắt đầu mất tích.

Hoàn thành chức năng và chương trình thử nghiệm dưới đây. Sẽ bình luận sau.

#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);
}

Chỉ có bốn ký tự khác nhau trong đầu ra. Chúng được giải mã từ các số nhị phân 0-3 bởi" _.|" . Mảngs[] chứa một số nguyên cho mỗi cột của đầu ra, 2 bit cho mỗi ký hiệu, được xác định để chứa bộ bẻ khóa ngoài cùng bên phải.

Đầu tiên forVòng lặp sao chép cracker trước đó, leftshifts nó để di chuyển nó lên, xóa góc dưới bên phải bằng cách sử dụng &và OR nó với cracker trước đó, 7 bước sang trái.

Thư hai forVòng lặp giải mã biểu diễn 2 bit của mỗi ký tự thành ký tự thực và in ký tự. Có rất nhiều mã ở đây chỉ để triệt tiêu khoảng trắng không cần thiết trong đầu ra. Tôi thất vọng vì điểm của tôi tăng lên thay vì giảm so với lần sửa đổi trước.

Đầu ra

Đó là 29 cái bánh quy. Tôi đã thay thế không gian bằng một -cái nhìn khác và để cho thấy rằng không có dấu cách hoặc dấu mới nào ở đầu ra.

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

Không có giá trị tối đa trong câu hỏi, chỉ là "một số nguyên dương". Vì vậy, 1 đến 5 là ý tưởng của bạn về bất kỳ số nguyên dương nào?
edc65

@ edc65 Đối với một vài byte nữa, bạn có thể có loại số nguyên 128 bit thay vì 32 bit. Điều đó sẽ đưa nó lên tới 56 cracker, mức này là đủ (tức là hơn 20kb sản lượng). Tôi thừa nhận tôi đã tính toán sai số lượng cracker tôi có thể nhận được với số nguyên 32 bit khi tôi bắt đầu, tôi nghĩ rằng nó ít nhất là mười. Nhưng vâng, tất cả các chương trình sẽ có một số loại giới hạn trên về số lượng cracker họ có thể sản xuất và tùy thuộc vào OP để quyết định đó là gì. Nó nên được chỉ định trong câu hỏi. Vì tôi sẽ chấp nhận phán quyết của OP về tính hợp lệ của câu trả lời của tôi (chưa kết thúc.)
Level River St

0

JavaScript (ES6) HTML5 - 233 236 byte

Có lẽ không phải là một câu trả lời hợp lệ, nhưng tôi không thể cưỡng lại việc đăng bài, xin lỗi :-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+"_____|"}

Kiểm tra trong Firefox với F(1), F(2), F(3)vv

Ví dụ: http://jsfiddle.net/Lvmg9fe8/7/


Tôi không biết JavaScript, nhưng Fiddle này dường như không làm gì cả (trong khi tôi đã có thể chạy các Fiddles khác không có vấn đề gì.) Tôi có Google Chrome và Internet Explorer.
Cấp sông St

@steveverrill nó chỉ hoạt động trong Firefox, giống như hầu hết mọi thứ được bán dưới dạng JavaScript ở đây. Chrome và IE không hỗ trợ EcmaScript 6.
tôi và con mèo của tôi

Nó hoạt động (trong Firefox), mặc dù nó không hoàn toàn như những gì tôi đang tìm kiếm;)
Sở thích của Calvin

Tôi dường như cũng không thể làm cho nó hoạt động được ... Tôi nhận được phản hồi "không xác định" bất cứ khi nào tôi nhập F(1)hoặc bất kỳ số nào khác, sau khi nhập mã này trong bảng điều khiển JS trong Firefox ...
WallyWest
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.