การแข่งขัน Saltine


23

นี่คือแคร็ก saltine ASCII :

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

ที่นี่สองแครกเกอร์ซ้อนกัน:

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

เขียนโปรแกรมที่สั้นที่สุดเท่าที่จะเป็นไปได้ซึ่งจะเป็นจำนวนเต็มบวก

อินพุตอาจมาจาก stdin, บรรทัดคำสั่งหรือคุณอาจเขียนฟังก์ชัน อินพุตจะถูกต้องเสมอ เอาต์พุตต้องไปที่ stdout หรือทางเลือกที่ใกล้เคียงที่สุด

แคร็กเกอร์แบบเรียงซ้อนแต่ละอันจะเลื่อนลง 2 ตัวอักษรเสมอและ 7 ตัวอักษรทางด้านขวาของแคร็กเกอร์ด้านล่าง ไม่ควรมีช่องว่างต่อท้ายหรือขึ้นบรรทัดใหม่จากภายนอก

โปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ

ตัวอย่าง

หากอินพุตเป็น1เอาต์พุตก็คือ

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

หากอินพุตเป็น2เอาต์พุตก็คือ

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

หากอินพุตเป็น3เอาต์พุตก็คือ

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

และอื่น ๆ

ความท้าทายของเกลือที่แท้จริง


1
โครงร่างของแคร็กเกอร์ด้านล่างจะแทนที่โครงร่างของแคร็กเกอร์ด้านบนอย่างไร
ภูมิใจ Haskeller

1
@ Calvin'sHobbies: ผมคิดว่าการซักถามเขาทำไมเส้นขอบด้านบนของเครื่องกะเทาะซ้อนกันเป็นแทน___|___ _______ฉันเดาว่ามันจะดูแปลก ๆ ถ้าเป็นหลัง
Claudiu

2
@Claudiu โอ้ ใช่มันไม่สมบูรณ์แบบ แต่มันดูแปลกไปกว่านี้
งานอดิเรกของ Calvin

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

ทิ้งสิ่งต่อไปนี้ไว้บนสแต็ก:

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

กองเกลือ

สมมติว่าเกลือจากด้านบนถูกบันทึกใน 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

ไม่มั่นใจเกี่ยวกับการบีบอัดสตริง พบการบีบอัดที่ดีสำหรับสตริง เคสแคร็กเกอร์ 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

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

ขอบคุณ FryAmTheEggman และ Vincent สำหรับการปิดตัวอักษร 11 ตัว

ความยิ่งใหญ่ของแครกเกอร์:

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

รหัสนี้ดูเหมือนไม่มีประสิทธิภาพจริงๆ แต่คำตอบอื่น ๆ จะบอก เพียงแค่คัดลอกและวาง cracker saltine ลงในอาร์เรย์ที่จุดที่ถูกต้องบัญชีสำหรับแครกเกอร์ส่วนใหญ่ด้านล่างถูกปิด 1 ตัวอักษรแล้วพิมพ์มันทั้งหมด

ฉันสามารถลดความยาวได้ถึง230 ตัวอักษรถ้าฉันใช้ไฟล์ภายนอก (รหัส 202 + 38 ไฟล์ขนาด + ชื่อไฟล์ 1)


11
โปรดแสดงทุกผลลัพธ์เพื่อn=1 upto 2^10ให้เรามั่นใจได้ว่าโปรแกรมของคุณทำสิ่งที่ถูกต้องจริงๆ
ข้อบกพร่อง

list(' '*(7*N+12))[' ']*(7*N+12)อาจจะเป็น
FryAmTheEggman

1
@ flawr: ครับนั่นคือที่จะพูด - คุณจะพูดว่า - คุณ, ah, ยิ่งทำให้ - พูดไม่ชัดหรืออาจเป็นเพียงการแนะนำว่าฉันเป็นคนโง่?
Claudiu

1
@Claudiu ฉันสามารถมั่นใจได้ว่าฉันจะไม่กล้าที่จะคิดว่าคุณไม่เชื่อในการกระทำที่จะมีเพียงสัมผัส sillynes = P
ข้อบกพร่อง

1
และG=[list(' '*(7*N+12))for _ in R(2*N+5)]ด้วยG=map(list,[' '*(7*N+12)]*(2*N+5))
Vincent

7

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

สำหรับบริบทที่ดีที่สุดของฉันก่อนหน้านั้น:

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]

การเพิ่มบรรทัดใหม่และการเยื้องเพื่อให้ง่ายต่อการอ่านในเบราว์เซอร์ของคุณ:

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

คุณสามารถแทนที่ "ป๊อป" ด้วย "<>" เพื่อนับจาก STDIN แทนที่จะเป็นพารามิเตอร์บรรทัดคำสั่งและไปที่ 206 ไบต์ การไปที่ STDERR จะลดลงเหลือ 204 ไบต์

หากฉันสามารถเปิดใช้งานคุณลักษณะ 'พูด' โดยไม่มีการลงโทษแบบไบท์ฉันก็สามารถไปที่ 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 ไม่นับรวมจำนวนอักขระทั้งหมดของคุณ -eperl -E''
hmatt1

ผลลัพธ์ของคุณไม่ถูกต้อง _|_ตรวจสอบ
choroba

@choroba ขอบคุณ! ฉันลืมที่จะนำวัสดุย่อยนั้นกลับมาหลังจากพยายามแทนที่ด้วย y / | / _ / (แต่มักจะจบลงด้วยรหัสอีกต่อไป) จาก 168 ถึง 189
Tye

4

Perl 201

(ลบ newlines ยกเว้นอันแรกเพื่อรับ #)

$_=" 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: ตกลงกลับไปที่ 202 :-(
choroba

2

Haskell, 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

การควบคุมการไหลค่อนข้างตรงไปตรงมา กลอุบายส่วนใหญ่มีการนำชิ้นส่วนแคร็กเกอร์กลับมาใช้ใหม่มากที่สุด

Ungolfed:

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

Python, 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);
}

มีอักขระที่แตกต่างกันเพียงสี่ตัวในเอาต์พุต เหล่านี้จะถูกถอดรหัสจากตัวเลขไบนารี 0-3 " _.|"โดย อาร์เรย์s[]มีจำนวนเต็มสำหรับแต่ละคอลัมน์ของเอาต์พุต 2 บิตต่อสัญลักษณ์ซึ่งถูกกำหนดให้มีแคร็กเกอร์ขวาสุด

forลูปแรกคัดลอกแคร็กเกอร์ก่อนหน้าเลื่อนระดับเพื่อเลื่อนขึ้นลบมุมด้านล่างขวาโดยใช้&และ ORs ด้วยแครกเกอร์ก่อนหน้า 7 ขั้นไปทางซ้าย

forลูปที่สองถอดรหัสการแทนแบบ 2 บิตของอักขระแต่ละตัวเป็นอักขระจริงและพิมพ์อักขระ มีรหัสจำนวนมากที่นี่เพียงเพื่อระงับช่องว่างที่ไม่จำเป็นในผลลัพธ์ ฉันผิดหวังที่คะแนนของฉันเพิ่มขึ้นแทนที่จะลดลงจากรุ่นก่อนหน้าของฉัน

เอาท์พุต

นั่นคือแครกเกอร์ 29 ตัว ฉันแทนที่พื้นที่ด้วยรูป-ลักษณ์ที่แตกต่างกันและเพื่อแสดงว่าไม่มีช่องว่างต่อท้ายหรือบรรทัดใหม่ที่ไม่เกี่ยวข้องในผลลัพธ์

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

ไม่มีค่าสูงสุดในคำถามเพียงแค่ "จำนวนเต็มบวก" ดังนั้น 1 ถึง 5 เป็นความคิดของคุณสำหรับจำนวนเต็มบวกหรือไม่?
edc65

@ edc65 สำหรับอีกสองสามไบต์คุณสามารถมีชนิดจำนวนเต็ม 128 บิตแทน 32 บิต นั่นจะทำให้กะเทาะมากถึง 56 ตัวซึ่งน่าจะเพียงพอ (นั่นมากกว่า 20kb ของการส่งออก) ฉันยอมรับว่าฉันคาดคะเนจำนวนแครกเกอร์ที่ฉันจะได้รับด้วยจำนวนเต็ม 32- บิตเมื่อฉันเริ่มฉันคิดว่ามันเป็นอย่างน้อยสิบ แต่ใช่โปรแกรมทั้งหมดจะมีขีด จำกัด สูงสุดบางประการเกี่ยวกับจำนวนแครกเกอร์ที่พวกเขาสามารถผลิตได้และขึ้นอยู่กับ OP เพื่อตัดสินใจว่ามันคืออะไร มันควรจะระบุไว้ในคำถาม ตามที่ฉันจะยอมรับการพิจารณาคดีของ OP เกี่ยวกับความถูกต้องของคำตอบของฉัน (ซึ่งยังไม่เสร็จสิ้น)
Level River St

0

JavaScript (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+"_____|"}

การทดสอบใน Firefox กับF(1), F(2), F(3)ฯลฯ

ตัวอย่าง: http://jsfiddle.net/Lvmg9fe8/7/


ฉันไม่รู้ JavaScript แต่ Fiddle นี้ดูเหมือนจะไม่ทำอะไรเลย (ในขณะที่ฉันสามารถเรียกใช้ Fiddles อื่น ๆ ได้อย่างไม่มีปัญหา) ฉันมี Google Chrome และ Internet Explorer
เลเวลริเวอร์เซนต์

@steveverrill ใช้งานได้เฉพาะใน Firefox เช่นเกือบทุกอย่างที่ขายเป็น JavaScript ที่นี่ Chrome และ IE ไม่รองรับ EcmaScript 6
ฉันและแมวของฉัน

ใช้งานได้ (ใน Firefox) แม้ว่าจะไม่ใช่สิ่งที่ฉันกำลังมองหาอยู่)
Calvin's Hobbies

ฉันดูเหมือนจะไม่สามารถใช้งานได้เช่นกัน ... ฉันได้รับการตอบสนอง "ไม่ได้กำหนด" เมื่อใดก็ตามที่ฉันป้อนF(1)หรือหมายเลขอื่นหลังจากป้อนรหัสนี้ในคอนโซล JS ใน Firefox ...
WallyWest
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.