Cube ของ Rubik ASCII


12

แรงบันดาลใจจากการแชทนี้และต่อไปนี้:

แรงบันดาลใจ

งานของคุณคือการส่งออกต่อไปนี้:

   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/

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

นี่คือดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!



3
ที่เกี่ยวข้อง (เช่นเดียวกับที่มีความหมายยิ่งขึ้นอีกสองสามข้อท้าทายอื่น ๆ ที่คุณสามารถหาได้เมื่อค้นหา "การเรียงเพชร")
Martin Ender

7
10 ชั่วโมงใน Sandbox (โดยเฉพาะกับ upvote เดียวเท่านั้น) แทบจะไม่เพียงพอ ฉันขอแนะนำให้รออย่างน้อย 48 ชั่วโมง
Dada

9
เพื่ออธิบาย downvote ของฉัน: ฉันไม่ชอบความท้าทายเพราะภาพใช้พื้นที่มากและฉันรู้สึกว่าคุณพยายามแสดงภาพตลกมากกว่าที่จะท้าทายดี (ยิ่งกว่าเนื่องจากรูปแบบไม่ได้ ไม่เหมือนกับที่เห็นในภาพ) (และฉันค่อนข้างแน่ใจว่าสิ่งนี้จะดึงดูดผู้โหวตบางคนจากภาพที่หัวเราะ) นอกจากนี้ "เอาท์พุทสตริงตรงนี้" ด้วยสตริงที่ดูมากกว่าหรือน้อยกว่าสตริงนี้ถูกทำมาหลายครั้งแล้วและฉันล้มเหลวที่จะเห็นว่าความท้าทายของคุณนั้นแตกต่างกันพอที่จะน่าสนใจ
Dada

4
@StephenS ฉันให้ +1 แต่ฉันไม่เห็นด้วยที่คุณสามารถพูดแบบเดียวกันสำหรับความท้าทาย KC ใด ๆ เมื่อฉันได้ทำการท้าทาย KC ฉันแน่ใจว่าได้ทำรูปแบบที่ค่อนข้างซับซ้อน (ดังนั้นถ่านไม่เพียงแค่ชนะอัตโนมัติ) ฉันทำ รูปแบบที่ยาวขึ้นดังนั้นภาษาที่สามารถจัดการลูปได้ดีกว่าจะมีโอกาส (เช่น JS) และฉันพยายามใช้สิ่งต่าง ๆ ที่บางภาษาอาจสร้างขึ้นในรูปแบบตัวอักษรความท้าทายของ KC แตกต่างกันมากและพยายามพูดว่าพวกมันเหมือนกัน อยู่ห่างจากหมวดหมู่
LiefdeWen

คำตอบ:



11

ถ่าน , 28 23 ไบต์

F³⁺⁺×\_³×\/⁻³ι¶ ‖M↑×_ ³

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด ถ่านไม่มาก -y ฉันรู้ ฉันไม่ได้ตระหนักว่า‖M↓จงใจย้ายเคอร์เซอร์ดังนั้นฉันได้ลองF³«P⁺×/_³×/\⁻³ι↗»‖M↓×_ ³ซึ่งไม่ได้ผลเพราะฉันพยายามทำให้มันกลับหัวกลับหาง ถ้าคุณต้องการบางอย่างเพิ่มเติม Charcoal-y ลองG↗³←⁶↘³/\¶\/G↖³←⁷↘³_\¶\_↘‖M↑×_ ³32 ไบต์: ลองออนไลน์!



5

> <> , 97 94 93 89 ไบต์

">knknknk//>k>knknknk/>k>k>knknknkk>k>k>n>n>n>k>k>n>n>n>/k>n>n>n>//n/n/n///"01.
of-

ลองออนไลน์!

แก้ไข 3: คิดออกว่าคุณสามารถใช้อักขระ "" (ascii 25) - ตอนนี้กระบวนการจะใช้เวลา 15 ออกทุกรายการสแต็คและพิมพ์ ลบคำแนะนำพิเศษเพิ่มเติมและแทนที่ทั้งหมดด้วย 1 move (01. )



4

ส่วนท้าย 99 ไบต์

#!/bin/tail -n+2
    _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/

1
ยินดีต้อนรับสู่ PPCG!
สตีเฟ่น

หรือ#!/bin/sed 1dตัวแปร
sch

4

Python 3 , 98 94 ไบต์

@KevinCruijssen แนะนำสิ่งนี้ ...

-4 ไบต์ขอบคุณ @HyperNeutrino และ @WheatWizard

โซลูชันการเข้ารหัส Hardcoding เอาท์พุท:

print(r"""   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/""")

ลองออนไลน์!

หรือ 98 ไบต์:

print("   _ _ _\n  /_/_/_/\\\n /_/_/_/\/\\\n/_/_/_/\/\/\\\n\_\_\_\/\/\/\n \_\_\_\/\/\n  \_\_\_\/")

ลองออนไลน์!


Python 3 , 139 ไบต์

Dumb Python 3 ไม่มีการเข้ารหัส Hardcoding แน่นอนว่าสามารถเล่นได้ น่าประหลาดใจที่การบีบอัดสองfors ในเวลาเดียวจะมีความยาวมากกว่า

p=print;p(' '*3+"_ "*3)
for i in range(3):p(abs(2-i)*' '+'/_'*3+'/'+i*"\/"+'\\')
for i in range(3):p(i*' '+'\\_'*3+'\\'+"/\\"*abs(2-i)+'/')

ลองออนไลน์!

Python 3 , 140 ไบต์

print(' '*3+"_ "*3,'\n'+'\n'.join(abs(2-i)*' '+'/_'*3+'/'+i*"\/"+'\\'if i<3else (i-3)*' '+'\\_'*3+'\\'+"/\\"*abs(i-5)+'/'for i in range(6)))

ลองออนไลน์!


1
อืมม............... \ \ \ \ \ \ \ \ \ \ \ \ \ \ \, ไม่ยากนะครับ แม้จะมีการทับหนีรอดไปมันเป็น 112 ไบต์ใน Java 8 / C # / JavaScript
Kevin Cruijssen

@KevinCruijssen จริง ๆ แล้ว>> <... เจ้าข้าโง่มาก
มิสเตอร์ Xcoder

1
ตอนนี้ฉันมีสนามกอล์ฟให้ทำมากมาย ....
Mr. Xcoder



3

Bubblegumขนาด 42 ไบต์

0000: e0 00 4f 00   22 5d 00 10   68 13 e2 04   15 00 b7 11 │ à.O."]..h.â...·.
0010: 7a 0e c5 f5   30 27 b5 b3   3d 39 8f a6   1f f9 74 52 │ z.Åõ0'µ³=9.¦.ùtR
0020: c5 66 98 bd   bd 0a 9a 8d   44 00                     │ Åf.½½¶..D.

3

Java 8, 112 ไบต์

o->"   _ _ _\n  /_/_/_/\\\n /_/_/_/\\/\\\n/_/_/_/\\/\\/\\\n\\_\\_\\_\\/\\/\\/\n \\_\\_\\_\\/\\/\n  \\_\\_\\_\\/"

เอาต์พุตแบบฮาร์ดโค้ด

ลองที่นี่


ฉันสามารถแก้ไขส่วนของฮาร์ดโค้ดและ JS และ C # เป็นคำตอบของคุณได้หรือไม่?
LiefdeWen

ตกลงคุณสามารถบันทึก 5 ไบต์บน C # ด้วยตัวอักษรคำต่อคำดังนั้นo=>@"...แล้วแทนที่\nด้วย newline จริง
LiefdeWen

2

C #, 86 ไบต์

o=>@"   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/"

ลองที่นี่


การท้าทาย. พบขนาดรวมที่เล็กกว่าเล็กน้อย (ส่วนหัว + ส่วนท้าย + รหัส) แต่แลกเปลี่ยนส่วนหัว / ส่วนท้ายที่เล็กลงสำหรับหลักที่ใหญ่กว่าของคุณเล็กน้อย: ลองออนไลน์!
Mark Rejhon

@ MarkRejhon น่าเสียดายที่เป็นส่วนหลักที่นับด้วยโปรแกรมหรือฟังก์ชั่นเริ่มต้น ;) ด้วยการเพิ่มo=>{} มันจะเป็น 98 ไบต์ในกรณีของคุณ
Kevin Cruijssen

2

เรติน่า 59 ไบต์


   _¶  /_/\¶ /_/V\¶/_/VV\¶\_VVV¶ \_VV¶  \_V
._
$&$&$&
V
\/

ลองออนไลน์! คำอธิบาย: ขั้นตอนแรกเพียงสร้างดังต่อไปนี้:

   _
  /_/\
 /_/V\
/_/VV\
\_VVV
 \_VV
  \_V

ขั้นตอนที่สองจะขยาย_s ทั้งหมดโดยทำซ้ำและอักขระก่อนหน้า 3 ครั้งในขณะที่ด่านที่สามเปลี่ยนVs เป็น\/s


2

PHP , 77 ไบต์

<?=strtr('   _ _ _
  0\
 01\
011\
2111
 211
  21',["/_/_/_/","\/","\_\_\_"]);

ลองออนไลน์!


1
บันทึก 4 ไบต์: ลองออนไลน์!
Neil

1
@Neil ขอบคุณและบันทึกอีก 2 ไบต์
JörgHülsermann

มันยอดเยี่ยมเสมอเมื่อคุณสามารถทำได้ดีกว่าเอาต์พุตที่แท้จริง!
Neil

2

05AB1E , 34 31 ไบต์

„_ 3×Âð'/:3F„/\«∞2ä`RˆD}\)¯R«.c

ลองออนไลน์!

คำอธิบาย

„_ 3×             # push the string "_ _ _ "
     Â            # push a reversed copy
      ð'/:        # replace spaces with slashes
3F                # 3 times do
  „/\«            # append "/\"
      ∞           # mirror
       2ä`        # split into 2 separate parts on stack
         Rˆ       # reverse the second part and push to global list
           D      # duplicate the remaining part
            }     # end loop
\)                # discard the last copy and wrap stack in a string
  ¯R              # push the global list and reverse it
    «             # append to the rest of the list
     .c           # pad lines to equal length

โซลูชันอื่น 31 ไบต์

„ _3×3FDð'/:„/\«∞2ä`R.Á})ÀÀÀ.c¦

ÀÀÀในเวอร์ชั่นอื่น[O_O"]...
Magic Octopus Urn

@MagicOctopusUrn: ใช่ ... ฉันยังไม่พบวิธีที่สั้นกว่าที่จะทำหรือหลีกเลี่ยง: P
Emigna

1
ฉันเห็นด้วยฉันใช้เวลาสองสามนาทีด้วยเช่นกัน ไม่มีทางที่ฉันจะเห็น xD
Magic Octopus Urn

2

CSS, 225 223 ไบต์

-2 ไบต์ขอบคุณ Stephen S ทำให้มีการลบช่องว่างเพิ่มเติม

ผมไม่แน่ใจว่าถ้านับนี้เพราะ CSS ไม่ได้จริงๆภาษาการเขียนโปรแกรม แต่ในทางเทคนิค CSS สามารถเป็นแบบสแตนด์อโลนตั้งแต่<html>องค์ประกอบ autogenerated ถ้ามีไม่ได้เป็นหนึ่ง

html:after{content:'   _ _ _ \A   /_/_/_/\005c\A  /_/_/_/\005c/\005c \A /_/_/_/\005c/\005c/\005c \A \005c_\005c_\005c_\005c/\005c/\005c/ \A  \005c_\005c_\005c_\005c/\005c\/\A   \005c_\005c_\005c_\005c /';white-space: pre;}

และนี่เป็นรุ่นที่มีตัวอักษรพิมพ์ดีด, 247 246 ไบต์

-1 ไบต์ด้วย Stephen S ทำให้มีการลบช่องว่างเพิ่มเติม

html:after{font-family:'Courier';content:'   _ _ _ \A   /_/_/_/\005c\A  /_/_/_/\005c/\005c \A /_/_/_/\005c/\005c/\005c \A \005c_\005c_\005c_\005c/\005c/\005c/ \A  \005c_\005c_\005c_\005c/\005c\/\A   \005c_\005c_\005c_\005c /';white-space: pre;}


ฉันคิดว่าคุณสามารถลบช่องว่างบางอย่างใน CSS รอบ:และ{}s
สตีเฟ่น

2

05AB1E , 35 32 31 ไบต์

"/ _\"•₁7æ¤ÝI}?ÕR&Ü•4вè4ôJ€∞ø¨»

ลองออนไลน์!

วิธีที่แตกต่าง 100% กว่า Emigna


แก้ไข:ถ้าฉันเริ่มต้นด้วยรูปแบบการแปลงแล้วฉันสามารถตัดออก 3 ไบต์


"/ _\"            # Push ASCII-art characters used.
•₁7æ¤ÝI}?ÕR&Ü•4в  # Push transposed version of base-4 pattern.
è                 # Replace all digits in base-4 number with appropriate symbol.
 4ô               # Split into groups of 4.
   J              # Join together.
    €∞            # Mirror each row (technically column).
      ø           # Transpose back.
       ¨»         # Remove the extra "_ _ _", and print with newlines.

1

JavaScript (ES6), 95 ไบต์

_=>String.raw`   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/`

JavaScript (ES6), 103 94 ไบต์

-9 ไบต์ขอบคุณ @Shaggy

_=>`   _ _ _
  ${a=`/_/_/_/\\`}
 ${a}/\\
${a}/\\/\\
${b=`\\_\\_\\_\\/`}\\/\\/
 ${b}\\/
  ${b}`

JavaScript (ES6), 106 ไบต์

_=>`   _ _ _
  /_/_/_/\\
 /_/_/_/\\/\\
/_/_/_/\\/\\/\\
\\_\\_\\_\\/\\/\\/
 \\_\\_\\_\\/\\/
  \\_\\_\\_\\/`

94 ไบต์
Shaggy

@Shaggy duh ฉันรู้ว่าแม้จะใช้มันเมื่อเร็ว ๆ นี้ ขอบคุณ!
สตีเฟ่น


@JoshuaBell รู้สึกอิสระที่จะโพสต์ว่าเป็นคำตอบของคุณเองที่ไม่แน่นอนกอล์ฟของฉัน :) (มันยังเป็นอัจฉริยะมาก)
สตีเฟ่น

1

Ruby, 72 70 ไบต์

7.times{|i|puts' '*(j=i^i/4+3)+'_ \_/_'[-i/3*2,2]*3+'/\/'[i/4,2]*j^=3}

แก้ไขล่าสุด: หลีกเลี่ยงคู่\โดยแนบสตริงในแทน''""

Ungolfed (หมายเหตุในดัชนีสตริงลบของ Ruby ล้อมรอบ-1เป็นอักขระตัวสุดท้าย)

7.times{|i|                       #7 lines.
  puts" "*(j=i^i/4+3)+            #Print j= 3,2,1,0, 0,1,2 spaces.
      "_ \\_/_"[-i/3*2,2]*3+      #Print 3 repeats of 2 characters from the string, index 0,-2,-2,-2,-4,-4,-4.
      "/\\/"[i/4,2]*j^=3          #Print 2 characters from the string, /\ or \/, repeated 3^j times.
}

1

Windows Batch ขนาด 122 ไบต์

@echo    _ _ _
@echo   /_/_/_/\
@echo  /_/_/_/\/\
@echo /_/_/_/\/\/\
@echo \_\_\_\/\/\/
@echo  \_\_\_\/\/
@echo   \_\_\_\/

สวยด้วยตัวเองอย่างชัดเจน


1

Brainf * ck 387 ไบต์

ไม่แน่ใจว่านี่ยังคงเป็นอะไรอยู่หรือเปล่า แต่ฉันก็เบื่อและทำเพื่อ sh * ts และหัวเราะคิกคัก :)

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

แก้ไข: TIL: ฉัน 54.28% มีประสิทธิภาพมากกว่าตัวสร้างบางตัวที่ฉันพบออนไลน์ ^. ^

แก้ไข 2: ลองออนไลน์ตรวจสอบให้แน่ใจว่าเปิดใช้งาน Wrap สำหรับการทำงานของหน่วยความจำล้นในตัวเลือกต่างๆ


1

COBOL, 238 ไบต์

รวบรวมด้วย open-cobol โปรดทราบว่าการเยื้องเป็นแท็บเดียวไม่ใช่ช่องว่างแม้ว่าเว็บไซต์นี้จะจัดรูปแบบนั้น

    IDENTIFICATION DIVISION.
    PROGRAM-ID. a.
    PROCEDURE DIVISION.
    DISPLAY "   _ _ _".
    DISPLAY "  /_/_/_/\".
    DISPLAY " /_/_/_/\/\".
    DISPLAY "/_/_/_/\/\/\".
    DISPLAY "\_\_\_\/\/\/".
    DISPLAY " \_\_\_\/\/".
    DISPLAY "  \_\_\_\/".
    STOP RUN.


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