นี่คือหมอนของฉัน


66

... คุณจะช่วยฉันให้เป็นอมตะได้ไหม

ป้อนคำอธิบายรูปภาพที่นี่

ฉันมีหมอนนี้มากี่ปีแล้วและดูเหมือนว่าถึงเวลาที่ต้องกำจัดมัน คุณช่วยกรุณาเขียนฟังก์ชั่นหรือโปรแกรมที่ฉันสามารถนำมากับฉันและใช้ในการสร้างหมอนนี้เมื่อใดก็ตามที่ฉันต้องการระลึกถึงเล็กน้อย

มันจะต้องทำงานโดยไม่มีข้อโต้แย้งอินพุต

ผลลัพธ์ควรมีลักษณะเช่นนี้ (ขึ้นบรรทัดใหม่และช่องว่างเป็น OK)

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////

นี่คือรหัสกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะชนะ!


ลีดเดอร์บอร์ด


7
ฉันค่อนข้างผิดหวังที่รูปแบบนั้นไม่ซับซ้อนกว่านี้เล็กน้อยเพื่อแสดงความหนาของเส้นที่แตกต่างกันของหมอน
Sparr

4
@Sparr ฉันลองแล้ว แต่ฉันไม่สามารถจัดการให้มันดูดีได้โดยใช้ตัวอักษร ASCII เท่านั้น คิดว่ามันใกล้พอ :)
Stewie Griffin

3
ฉันเพิ่งเพิ่มที่ว่าง
Sparr

1
'apparently': P
Pysis

7
ตอนนี้คุณสามารถซื้อหมอนเปล่าและพิมพ์ข้อมูลผู้ชนะได้
coredump

คำตอบ:


24

05AB1E , 18 15 ไบต์

รหัส:

„/\5×{4Å6×»6F=R

คำอธิบาย:

„/\               # Push the string "/\"
   5×             # Repeat 5 times: "/\/\/\/\/\"
     {            # Sort, resulting in: "/////\\\\\"
      4Å6         # Create a list of 6's with length 4: [6, 6, 6, 6]
         ×        # Vectorized string multiplication
          »       # Join by newlines
           6F     # Do the following six times..
             =    #   Print with a newline without popping
              R   #   Reverse the string

ใช้การเข้ารหัสCP-1252 ลองออนไลน์!


2
ว้าว ... สองสิ่งที่แตกต่างกันคือจำนวนไบต์เดียวกัน ...
Oliver Ni

30

/// , 116 ไบต์

/a/\\\\\\\\\\\\\\\///b/\\\\\\\\\\\\\\\\//A/aaaaa//B/bbbbb//C/ABABABABABAB
//D/BABABABABABA
/CCCCDDDDCCCCDDDDCCCCDDDD

ลองออนไลน์!

แก้ไข : \\\\\\\\\\\\\\\/และ\\\\\\\\\\\\\\\\เป็นจริงเดียว / และ \ ตามลำดับ

แก้ไข : -3 iเพราะผมคิดว่าการลบ ฉันคิดว่านี่ไม่สามารถเล่นกอล์ฟต่อไปได้


15

Python 2, 49 ไบต์

b,a='\/';exec("print(a*5+b*5)*6;"*4+"a,b=b,a;")*6

ขอบคุณ Mitch Schwartz สำหรับวิธีทำความสะอาดที่บันทึกไบต์ แนวคิดคือพิมพ์สี่บรรทัด('\\'*5+'/'*5)*6สลับบทบาทของเครื่องหมายสแลชและแบ็กสแลชจากนั้นทำกระบวนการทั้งหมด 6 ครั้ง ตัวละครทั้งสองจะถูกเก็บไว้ในaและและเปลี่ยนเป็นb a,b=b,adouble-loop เป็น double โดยสร้างสตริงของโค้ดต่อไปนี้จากนั้นเรียกใช้งานมันด้วยexec:

print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;

50 ไบต์:

s='/'*5+'\\'*5;exec("print s*6;"*4+"s=s[::-1];")*6

ทำให้สตริงบรรทัดพิมพ์ออกมาสี่ครั้งแล้วย้อนกลับจากนั้นทำซ้ำ 6 ครั้ง ทำได้โดยการสร้างรหัสต่อไปนี้แล้วรันมัน:

print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1]

นี่คือบางส่วนของการเล่นกอล์ฟของฉันซ้ำ:

for c in([1]*4+[-1]*4)*3:print('/'*5+'\\'*5)[::c]*6

for i in range(24):print('/\\'*5+'\/'*5)[i/4%2::2]*6

for c in range(24):print('\\'*5+'/'*5)[::(c&4)/2-1]*6

for i in range(24):print('/'*5+'\\'*5)[::1-i/4%2*2]*6

for c in([1]*4+[0]*4)*3:print('\/'*5+'/\\'*5)[c::2]*6

for c in([1]*4+[0]*4)*3:print('\/'[c]*5+'/\\'[c]*5)*6

for c in(['/\\']*4+['\/']*4)*3:print(c[0]*5+c[1]*5)*6

for c in([5]*4+[-5]*4)*3:print('/'*c+'\\'*5+'/'*-c)*6

print((('/'*5+'\\'*5)*6+'\n')*4+(('\\'*5+'/'*5)*6+'\n')*4)*3

for x in(['/'*5+'\\'*5]*4+['\\'*5+'/'*5]*4)*3:print x*6

a='/'*5;b='\\'*5
for x in([a+b]*4+[b+a]*4)*3:print x*6

s='/'*5+'\\'*5
for x in([s]*4+[s[::-1]]*4)*3:print x*6

s=('/'*5+'\\'*5)*9
exec("print s[:60];"*4+"s=s[5:];")*6

a='/'*5;b='\\'*5
for i in range(24):print[a+b,b+a][i/4%2]*6


8

JavaScript (ES6), 68 60 58 ไบต์

ฟังก์ชั่นวนซ้ำ หลายการเพิ่มประสิทธิภาพแรงบันดาลใจจากคำตอบ chocochaos

f=(n=1440)=>n--?'/\\'[n/240&1^n/5&1]+(n%60?'':`
`)+f(n):''

การสาธิต


ฉันคิดว่าคุณสามารถออกไปก่อน&1และบันทึกสองไบต์
Henrik Christensen

@HenrikChristensen n < 480เท่านั้นที่จะทำงานให้ สำหรับเราจะต้องวงเล็บ:n >= 480 (n/240^n/5)&1
Arnauld

8

Bubblegumขนาด 30 ไบต์

00000000: d307 8118 1020 9dc5 3544 3523 f8a4 b386  ..... ..5D5#....
00000010: aae6 e113 cfa3 f13c 1acf a3f1 0c00       .......<......

คำตอบ Bubblegum บังคับ


โอ้ความดีของฉันภาษานี้ยอดเยี่ยม!
เปโดร A

7

Haskell, 77 70 57 ไบต์

a%b=(<*[1..a]).([1..b]>>)
unlines$4%3$5%6<$>["/\\","\\/"]

น่าเบื่อconcatและreplicates แทนที่จะเล่นกับ sines เก่าคือ:

unlines[["\\/"!!(ceiling$sin(pi*x/5)*sin(pi*y/4))|x<-[0.5..59]]|y<-[0.5..23]]

6

Brainfuck, 140 ไบต์

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

:-D


3
โอ้ดูสิ! วิธีแก้ปัญหา brainfuck นั้นสั้นกว่าโซลูชันของ Java แปดไบต์ เวลาสำหรับ Java coders ที่จะเปลี่ยนเป็น brainfuck ...
0WJYxW9FMN

Java
โต้

6

Python 2, 86 80 76 74 73 ไบต์

for z in range(24):a=('/'*5+'\\'*5)*24;print((a+a[::-1])*3)[z*60:z*60+60]

อาจตีกอล์ฟเพิ่มอีกซักสองสามอัน แต่มันเป็นการเริ่มต้น

แก้ไข

บันทึก 6 โดยลบวงเล็บบางอันที่ไม่จำเป็นออก

อีก 4 โดยใช้สายเดียวแล้วย้อนกลับ

ขอบคุณ @Adnan เมื่อคืนที่ผ่านมาเมื่อคืนนี้และยังไม่ตื่นตัว: p

-1 โดยการย้าย*24ไปที่ตัวแปรแทนที่จะใช้สองครั้ง


4
ฉันเชื่อว่า*6*4เป็นเช่นเดียวกับ*24? : p
Adnan

6

Brainfuck, 149 ไบต์

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

ล่าม EVAR ที่ดีที่สุด!

สิ่งนี้ใช้ 6 เซลล์ (ไม่มีการห่อไม่มีโมดูโล) ที่นี่พวกเขาคือ:

0A 00 2F 00 5C 00

00เซลล์ที่ใช้สำหรับเคาน์เตอร์ห่วง ที่นี่เคาน์เตอร์จะเต็มไปด้วยค่าเริ่มต้น:

0A 06 2F 04 5C 03

ตัวนับซ้ายสุดใช้สำหรับวงในสุด (ใช่ฉันใช้ลูปซ้อนในระดับความลึก 3) โปรดทราบว่าใช้เซลล์ที่ 4 (ตัว04นับ) สองครั้งหนึ่งครั้ง/////\\\\\...และครั้งเดียว\\\\\/////...ทุกครั้ง

0A, 2Fและ5Cมีตัวละคร\n, /และ\ตามลำดับ


6

Python 2.7 66 -> 56 -> 55 ไบต์

a="/"*5+"\\"*5;b=a[::-1];c=6*a+"\n";d=6*b+"\n";e=4*c+4*d;print e*3

ใหม่กับการตีกอล์ฟ

a="/"*5+"\\"*5;print(4*(6*a+"\n")+4*(6*a[::-1]+"\n"))*3

ขอบคุณ Stewie Griffin

ลืมช่องว่างที่ไร้สาระ;)


2
ยินดีต้อนรับสู่ PPCG! คำตอบแรกที่ดี :) คุณสามารถข้ามตัวแปรกลางได้ไหม? อย่างน้อยdและeอาจมากขึ้น ฉันไม่ได้ทดสอบนี้ print(4*c+4*(6*b+"\n"))*3แต่มันควรจะใกล้เคียง: มันน้อยกว่า 5 ไบต์
Stewie Griffin

3
55 bytes:a="/"*5+"\\"*5;print(4*(6*a+"\n")+4*(6*a[::-1]+"\n"))*3
Stewie Griffin

6

Brainfuck, 179 ไบต์

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

ฉันรู้ว่านี่ไม่ใช่คะแนนที่ดีที่สุดในเธรด แต่ฉันต้องการลองใช้ brainfuck และลองทำสิ่งนี้

แก้ไข: ฉันต้องทำข้อผิดพลาดขณะคัดลอก รุ่นนี้ควรใช้งานได้


ยินดีต้อนรับสู่เว็บไซต์!
DJMcMayhem

ใช้งานไม่ได้สำหรับฉัน เบราว์เซอร์แขวนกับล่ามนี้และบุคลากรหนึ่งแสดงที่ไม่คาดว่าการส่งออก 5 บรรทัด: สี่ครั้งแล้วไม่มีที่สิ้นสุด/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ \
aluriak

ใช่มันใช้งานได้ :)
aluriak



5

MATL , 18 16 ไบต์

'\/'6:&+thK5&Y")

ลองออนไลน์!

คำอธิบาย

'\/'   % Push this string
6:     % Push array [1 2 3 4 5 6]
&+     % 6×6 matrix with all pair-wise additions from that array
th     % Concatenate horizontally with itself. Gives a 6×12 matrix
K      % Push 4
5      % Push 5
&Y"    % Repeat each entry of the matrix 4 times vertically and 5 times horizontally
       % This gives a 24×60 matrix
)      % Index (modularly) into the string. This produces the desired 24×60 char array

5

Pyth, 22 ไบต์

V6V4V12p*5?%+bN2\\\/)k

ลองมันนี่

คำอธิบาย:

V6                     Loop 6 times, with N from 0 to 5:
  V4                   Loop 4 times, with H from 0 to 3:
    V12                Loop 12 times, with b from 0 to 11:
      p                Print without newline
        *              The repetition
          5            5 times of
          ?            if
            %          the remainder
              + b N    when the sum of b and N
              2        is divided by 2
          \\           then the "\" character
          \/           else the "/" character
    )                  End
                       (implicitly print with newline)
  k                    k (empty string)
                       (implicit end)
                       (implicit end)

ขออภัยถ้าคำอธิบายนั้นยากที่จะเข้าใจ แต่มันค่อนข้างซับซ้อน


5

V , 22 21 ไบต์

แก้ไขหนึ่งไบต์ที่ได้รับรางวัลขอบคุณ @DjMcMayhem:

5á\5á/05ä$4Ä5x$p4Ä3ä}

การเปลี่ยนแปลงคือ:

  • Y4P-> ใช้ V บรรทัดที่ซ้ำกันแทนคำสั่งในตัว Vim (ซึ่งจะเพิ่มบรรทัดว่างที่ท้ายย่อหน้า)
  • 3äG-> 3ä}ทำสำเนาย่อหน้าแทนบัฟเฟอร์ทั้งหมด (เพื่อหลีกเลี่ยงบรรทัดว่างที่เกิดจากการเปลี่ยนแปลงก่อนหน้า)

โพสต์ต้นฉบับ

5á\5á/05ä$Y4P5x$p4Ä3äG

ลองออนไลน์

ย่อยสลายเช่นนี้:

5á\                    Write 5 \
   5á/                 Write 5 / after
      0                Go to the beginning of the line
       5ä$             Copy the text to the end of the line and repeat it 5 times
          Y4P          Copy the line and create 4 new copies
             5x$p      Delete the 5 first characters and put them at the end of the line
                 4Ä    Duplicate this line
                   3äG Duplicate the whole text

มันเจ๋งมากที่เห็นคนอื่นใช้ V! จนกระทั่งเมื่อเร็ว ๆ มันเป็นเพียงฉัน หากคุณต้องการความช่วยเหลือคุณสามารถ ping ฉันในไบต์ที่สิบเก้า
DJMcMayhem

@DrMcMoylex Yup ภาษาของคุณดูเหมือนจะสนุกที่จะใช้ :-) ฉันมีปัญหากับเรื่องนี้: เริ่มแรกฉันต้องการใช้5á\5á/05ä$5Ä5x$p4Ä3äGเช่นแทนที่Y4Pด้วยแต่ด้วยเหตุผลที่ฉันไม่เข้าใจมันก็คัดลอกบรรทัดว่างเพิ่มเติม ... ถ้าคุณสามารถ สอนฉันเกี่ยวกับสิ่งนี้มันจะดี นอกจากนี้ถ้าฉันหาเวลาว่างฉันยินดีที่จะมีส่วนร่วมในภาษา (โดยเฉพาะปัญหา # 4 )
statox

อาใช่นั่นทำให้ฉันลำบากใจหลายครั้ง มันเป็นปัญหาที่ทราบกันดี ปัญหาคือว่าÄเป็นคำพ้องสำหรับไม่dd Yนี่ไม่ใช่ปัญหา แต่มันทำให้เกิดปัญหาหากบัฟเฟอร์มีเพียงหนึ่งบรรทัดหรือถ้าคุณอยู่ในบรรทัดสุดท้าย
DJMcMayhem

ที่จริงฉันเพิ่งรู้ว่าวิธีการที่จะยังคงทำงานถ้าคุณแทนที่3äGด้วย3ä}เพราะมันจะไม่งัดขึ้นบรรทัดใหม่ที่ v.tryitonline.net/…
DJMcMayhem

โอเคฉันคิดว่าฉันเข้าใจว่าทำไมมันไม่ทำงาน และเป็นวิธีที่ดีที่จะชนะ 1 ไบต์ขอบคุณ!
statox

4

เยลลี่ , 17 16 ไบต์

⁾/\ẋ6Wẋ4;U$ẋ3x5Y

ลองออนไลน์!

ขอบคุณ 6710 (ไมล์) สำหรับ -1 ไบต์


1
ฉันคิดว่าคุณสามารถบันทึกไบต์ด้วย⁾/\ẋ6Wẋ4;U$ẋ3x5Y
ไมล์

@miles ขอบคุณดูเหมือนว่าฉันยังไม่สามารถใช้ quicks ได้อย่างมีประสิทธิภาพ :) และฉันรู้ว่าฉันไม่ต้องการสองYs!
Erik the Outgolfer

4

ที่จริงแล้ว 21 ไบต์

"/\"5*SR6*;4α@R4α+3αi

ลองออนไลน์!

-1 ไบต์จาก Adnan

คำอธิบาย:

"/\"5*SR6*;4α@R4α+3αi
"/\"5*                 "/\" repeated 5 times
      SR               sort and reverse (result: "\\\\\/////")
        6*             repeat string 6 times (forms one row)
          ;4α          copy and push a list containing 4 copies
             @R4α+     push a list containing 4 copies of the reversed string, append to previous list (now we have one row of diamonds)
                  3α   repeat pattern vertically 2 more times
                    i  flatten and implicitly print

คุณสามารถทำสิ่งที่ต้องการ"/\"5*Sสร้างสตริงของเครื่องหมายทับหรือไม่
Adnan

@Adnan ความคิดที่ดี!
Mego

4

ทับทิมขนาด 46 ไบต์

สร้างสตริงต่อไปนี้ (70 ตัวอักษรหนึ่งชุดเกินจำเป็น) จากนั้นสลับระหว่างอักขระสุ่มตัวอย่าง0..59และ5..64จากมัน

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\

รหัสและผลลัพธ์

24.times{|i|puts ((?/*5+?\\*5)*7)[i/4%2*5,60]}

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////

ข้อผิดพลาดที่น่าสนใจ (7 แทน 5)

24.times{|i|puts ((?/*5+?\\*5)*7)[i/4%2*7,60]}

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\

4

APL, 30 ไบต์

A←240⍴'/////\\\\\'⋄24 60⍴A,⊖A

ฉันค่อนข้างใหม่สำหรับ APL (ฉันใช้ APLX แต่ควรใช้กับการใช้งานส่วนใหญ่ของ APL) ดังนั้นนี่จึงเป็นวิธีแก้ปัญหาที่ค่อนข้างง่าย

คำอธิบาย:

A ← 240 ⍴ '/////\\\\\' ⍝ set A to be a 240 character vector populated with '/////\\\\\'
⋄                      ⍝ statement separator
24 60 ⍴ A,⊖A           ⍝ populate a 24 by 60 character matrix with the concatenation 
                          of A and the reverse of A (⊖A)

4

C, 66 61 ไบต์

บันทึก 5 ไบต์ด้วย orlp

ตัวละครตรงไปตรงมาโดยการพิมพ์ตัวละคร 61 ตัวอักษรต่อแถวสุดท้ายเป็นบรรทัดใหม่ (ASCII 10) และตัวเลือกอื่น ๆ ระหว่าง/47 และ\92

i;f(){for(i=1463;i;)putchar(i--%61?i%61/5+i/244&1?92:47:10);‌​}

//call like this
main(){f();}

61 i;f(){for(i=1463;i;)putchar(i--%61?i%61/5+i/244&1?92:47:10);}ไบต์:
orlp

@ หรือขอบคุณฉันรู้ว่าต้องมีวิธีที่ดีกว่าด้วยi--แต่ฉันไม่ได้มีเวลาที่จะมองหามัน
เลเวลริเวอร์เซนต์

3

Python 2, 63 ไบต์

a='\n'.join([('/'*5+'\\'*5)*6]*4);print'\n'.join([a,a[::-1]]*3)

สำหรับ Python 3 ให้ทำเช่นนี้ (65 ไบต์):

a='\n'.join([('/'*5+'\\'*5)*6]*4);print('\n'.join([a,a[::-1]]*3))

1
นี้จะใช้วิธีการเช่นเดียวกับคำตอบของวุ้นของฉัน
Erik the Outgolfer

วิธีที่มีประสิทธิภาพมากกว่าของฉันเริ่มต้นด้วย
ElPedro

@ ElPedro โดยทั่วไปฉันเพิ่งจัดการสตริง / อาร์เรย์ เคล็ดลับคือฉันได้เตรียมสตริงที่ยิ่งใหญ่กว่า: /////\\\\\/////...สี่ครั้งคั่นด้วยการขึ้นบรรทัดใหม่
Erik the Outgolfer

3

Brainfuck ที่แก้ไขตัวเองได้ , 91 ไบต์

>>+++[<++++[<++++++[<.....<.....>>-]<<<.>>>>-]++++[<++++++[<<.....>.....>-]<<<.>>>>-]>-]
\/

ลองออนไลน์!

เช่นเดียวกับคำตอบ brainfuckของฉันแต่ใช้อักขระ 3 ตัวสุดท้ายของซอร์สโค้ดแทนที่จะสร้างมันในขณะทำงาน


3

J, 31 28 19 ไบต์

4#_60]`|.\5#72$'/\'

การใช้

   4#_60]`|.\5#72$'/\'
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////

3

ระดับเสียงคู่50 50ไบต์

ฟังก์ชั่นไม่ระบุชื่อ:

@()repmat([A=repmat(47,4,5) B=A*2-2;B A ''],3,6)

คุณสามารถลองออนไลน์ได้ที่นี่ ans()เพียงแค่เรียกใช้คำสั่งดังกล่าวและเรียกใช้ฟังก์ชั่นที่มี

สิ่งสำคัญนี้จะสร้างอาร์เรย์ของค่า 47 ซึ่งสูง 4 และ 5 กว้าง จากนั้นจะสร้างอาร์เรย์ที่สองของค่า 92 ซึ่งมีขนาดเท่ากัน

[A B;B A]อาร์เรย์ที่สองตัดแบ่งออกเป็นกระดานหมากรุกของ ''ถูกตัดแบ่งได้เป็นอย่างดีที่จะบังคับให้การแปลงสายอักขระ

ในที่สุดอาร์เรย์ทั้งหมดจะถูกจำลองแบบ 3 ครั้งและอีก 6 ครั้งเพื่อสร้างขนาดสุดท้าย


  • บันทึกแล้ว 2 ไบต์ขอบคุณ @StewieGriffin

ไม่จำเป็นต้องใช้ฟังก์ชั่นนิรนาม บันทึก 3 ไบต์
Tasos Papastylianou

@TasosPapastylianou มีอยู่มิฉะนั้นจะพิมพ์ans=ก่อนหมอน มีอยู่ในฟังก์ชั่นรับรอบนี้ตามที่คาดว่าจะกลับคำตอบให้กับตัวแปรมากกว่าการแสดง
Tom Carpenter

นั่นเป็นเพียงความหมาย ฉันหมายความว่าถ้าคุณเป็นคนที่คลั่งไคล้ฉันจะกังวลมากขึ้นเกี่ยวกับข้อความเตือน 3 บรรทัดที่ปรากฏขึ้นแทน: p นอกจากนี้กฎทั่วไปยังระบุว่าต้องเป็นเอาต์พุตจากคำสั่งเทอร์มินัลโดยตรงหรือโทรได้ จับฟังก์ชั่น หมายความว่าคุณควรกำหนดฟังก์ชั่นที่ไม่ระบุชื่อของคุณให้กับที่จับ (หรือเพิ่มอีก 5 ไบต์เพื่อบัญชีที่ต้อง pring ans()) ซึ่งไม่มีจุดหมายเพราะans() ยังคงพิมพ์ansเมื่อเรียกใช้!
Tasos Papastylianou

@TasosPapastylianou ans()เป็นฟังก์ชัน callable ดังนั้นคุณไม่จำเป็นต้องกำหนดมันให้กับบางสิ่งบางอย่างเช่นa=@...เพราะมันถูกกำหนดให้ansเป็นหมายเลขอ้างอิงโดยปริยาย นอกจากนี้ยังไม่ได้พิมพ์เมื่อทำงานเฉพาะถ้าคุณขอให้โดยไม่ได้ทำอะไรที่มีค่ากลับมาและไม่เพิ่มans= ;ถ้าคุณทำdisp(ans())มันจะพิมพ์ผลลัพธ์ที่แน่นอนเท่านั้น (ไม่ใช่ans=) แต่ใช่คำเตือนนั้นน่ารำคาญ แต่ก็ไม่ได้เกิดขึ้นก่อนหน้านี้ดังนั้นจึงไม่ใช่ภาษาที่เฉพาะเจาะจง แต่เป็นล่ามที่เฉพาะเจาะจง
Tom Carpenter

ตกลงเราจะไม่เห็นด้วย วิธีที่ฉันเห็นถ้าคุณพึ่งพาdisp(ans())ก่อนที่จะได้รับผลลัพธ์ของคุณคุณต้องเพิ่ม 12 ไบต์ลงในคำตอบของคุณ ความคิดเห็นของฉันคือว่านี่เป็นเพียงวิธีที่อ็อคเทฟนำเสนอผลลัพธ์
Tasos Papastylianou

3

PHP, 73 69 ไบต์

for($s='/\\';$i<1440;$i++)echo$i%60<1?'
':'',$s[($i/5+($i/240|0))%2];

การสาธิต

http://ideone.com/z7N1Md


1
69 ไบต์: for($s='/\\';$i<1440;$i++)echo$i%60<1?'\n':'',$s[($i/5+($i/240|0))%2];(แทนที่\nด้วย newline จริง) echoไม่ใช่ฟังก์ชั่นดังนั้นจึงไม่จำเป็นต้องใช้วงเล็บ นอกจากนี้ยังechoสามารถรับหลายค่าคั่นด้วยเครื่องหมายจุลภาค สิ่งนี้ทำให้ไม่จำเป็นต้องใส่วงเล็บเหล่านั้นจริงๆ จากนั้นในใจของคุณ$s[...]การคำนวณด้านนอกส่วนใหญ่ไม่จำเป็นต้องใส่วงเล็บ[]ด้วย การใช้$s[($i/5+($i/240|0))%2]มีผลเหมือนกันและสั้นกว่า
Ismael Miguel

ขอบคุณอัปเดต! ฉันไม่รู้ด้วยซ้ำเกี่ยวกับ echo ที่ยอมรับพารามิเตอร์หลายตัว ^ _ ^
chocochaos

echoและprintยอมรับพารามิเตอร์หลายตัว แต่printต้องใช้วงเล็บในหลายพารามิเตอร์เมื่อใช้กับการเพิ่มขึ้นของเงื่อนไขการกำหนด
Ismael Miguel

สามารถตัดออกได้<1โดยเปลี่ยนecho$i%60?'':' ',บรรทัดใหม่เป็นนิพจน์ 3 ในส่วนที่สาม
Progrock

3

Java 7, 120 ไบต์

String c(){String r="";for(int i=0;i<1440;r+=(i%60<1?"\n":"")+(i/60%8<4?i%10<5?"/":"\\":i%10<5?"\\":"/"),i++);return r;}

ผลักทุกอย่างให้เป็นหนึ่งวง Beats Brainfuck ภารกิจสำเร็จ

ดูออนไลน์ได้ที่: https://ideone.com/pZjma3


3

เป็นกลุ่ม44 44ไบต์

แก้ไขจำนวนไบต์จำนวนมากต้องขอบคุณ @DrMcMoylex:

5i\<esc>5a/<esc>0y$5PY4P5x$pY3PyGPP

คำตอบเดิม:

ฉันไม่แน่ใจว่าเหมาะกับกฎของเว็บไซต์นี้จริงๆ แต่ฉันคิดว่ามันสนุกที่จะลอง:

i\<esc>59.:s;\v(.{5})\1;\1/////;g<CR>Y4P5x$pY3PyGPP

ซึ่งสามารถย่อยสลายได้ดังนี้:

i\<esc>                       Insert a \
59.                           Repeat 59 time the insertion
:s;\v(.{5})\1;\1/////;g<CR>   Match 5 characters followed by the same 5 characters
                              And replace them by these 5 characters followed by 5 /
Y4P                           Copy the line and repeat it 4 times
5x$p                          On the current line delete 5 characters and put them 
                              at the end of the line
Y3P                           Copy the line and repeat it 3 times
yG                            Copy all the lines
PP                            Repeat them 2 times

โอ้เฮ้ statox ยินดีต้อนรับสู่เว็บไซต์! ทั้งหมดนี้เหมาะกับกฎ ฉันเล่นกอล์ฟเป็นส่วนใหญ่เป็นกลุ่ม เพียงเท่านี้คุณก็รู้ว่าคุณสามารถทำได้5i/<esc>5a\<esc>0y$5Pตั้งแต่เริ่มบันทึก 9 ไบต์
DJMcMayhem

สวัสดี DrMcMoylex (ชื่อใหม่? :-)) ดีใจที่ได้พบคุณที่นี่และคำตอบของฉันเหมาะกับ นอกจากนี้ขอขอบคุณสำหรับคำใบ้ของคุณฉันจะแก้ไขคำตอบของฉัน
statox

2
ฮ่าฮ่าใช่ฉันเปลี่ยนชื่อฉันชั่วคราวเนื่องจากความท้าทายนี้ฮ่า ฉันจะเปลี่ยนกลับใน 30 วัน
DJMcMayhem

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