Khối Rubik của ASCII


12

Lấy cảm hứng từ điều này và trò chuyện sau đây:

Cảm hứng

Nhiệm vụ của bạn là xuất ra các mục sau:

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

Khoảng trắng hàng đầu hoặc dấu phụ được cho phép, miễn là nó không thay đổi sự xuất hiện của khối. Như thường lệ, trả về chuỗi trên hoặc danh sách các chuỗi từ một hàm được cho phép.

Đây là , vì vậy câu trả lời ngắn nhất bằng byte thắng!



3
Liên quan. (Cũng như, một cách tiếp tuyến hơn, một vài thách thức khác mà bạn có thể tìm thấy khi tìm kiếm "ốp lát kim cương".)
Martin Ender

7
10 giờ trong Sandbox (đặc biệt chỉ với một upvote) là không đủ. Tôi khuyên bạn nên đợi ít nhất 48 giờ.
Dada

9
Để giải thích cho nhược điểm của tôi: Tôi không thực sự thích thử thách này, vì hình ảnh chiếm nhiều không gian và tôi cảm thấy như bạn đang cố gắng thể hiện một hình ảnh vui nhộn hơn là thực hiện một thử thách tốt (thậm chí nhiều hơn vì mô hình không phải là không giống như trên bức tranh) (và tôi khá chắc chắn rằng điều này sẽ thu hút một số người ủng hộ từ những người chỉ cười vào bức ảnh). Ngoài ra, "xuất chuỗi chính xác này" bằng một chuỗi trông nhiều hơn hoặc ít hơn chuỗi này đã được thực hiện nhiều lần và tôi không thấy thử thách của bạn đủ khác biệt đến mức nào để thú vị.
Dada

4
@StephenS Tôi đã cho +1, nhưng tôi không đồng ý rằng bạn có thể nói tương tự cho bất kỳ thử thách KC nào, khi tôi thực hiện thử thách KC, tôi chắc chắn sẽ tạo ra mô hình hơi phức tạp (vì vậy than không chỉ tự động thắng), tôi thực hiện các mẫu dài hơn để các ngôn ngữ có thể xử lý các vòng lặp tốt hơn có cơ hội (Giống như JS) và tôi cố gắng sử dụng những thứ mà một số ngôn ngữ có thể tạo ra như bảng chữ cái, các thách thức KC khác nhau rất nhiều và cố gắng nói rằng tất cả đều giống nhau tránh xa hạng mục
LiefdeWen

Câu trả lời:



11

Than , 28 23 byte

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

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng của mã. Tôi không biết rất nhiều Than-y. Tôi đã không nhận ra rằng việc ‖M↓cố tình di chuyển con trỏ nên ban đầu tôi đã thử F³«P⁺×/_³×/\⁻³ι↗»‖M↓×_ ³nó không hoạt động, vì tôi đã cố gắng làm nó lộn ngược. Nếu bạn muốn một cái gì đó nhiều hơn Char than-y thì hãy thử G↗³←⁶↘³/\¶\/G↖³←⁷↘³_\¶\_↘‖M↑×_ ³32 byte: Hãy thử trực tuyến!



5

> <> , 97 94 93 89 byte

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

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

Chỉnh sửa 3: Tìm hiểu rằng bạn có thể sử dụng ký tự "" (ascii 25) - Bây giờ quá trình chỉ mất 15 mục mỗi ngăn xếp và in. Đồng thời xóa các hướng dẫn bổ sung và thay thế tất cả bằng 1 di chuyển (01.)



4

Đuôi, 99 byte

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

1
Chào mừng đến với PPCG!
Stephen

Hoặc #!/bin/sed 1dbiến thể
sch

4

Python 3 , 98 94 byte

@KevinCruijssen đề xuất điều này ...

-4 byte nhờ @HyperNeutrino và @WheatWizard

Giải pháp mã hóa đầu ra:

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

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

hoặc, 98 byte:

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

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


Con trăn 3 , 139 byte

Dumb Python 3 không phải mã hóa cứng, chắc chắn rằng nó có thể được đánh gôn. Đáng ngạc nhiên, nén hai fors chỉ trong một vòng dài hơn:

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)+'/')

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

Python 3 , 140 byte

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

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


1
Umm .. không khó mã hóa đầu ra ngắn hơn? Ngay cả với các dấu gạch chéo đã thoát, nó có 112 byte trong Java 8 / C # / JavaScript .
Kevin Cruijssen

@KevinCruijssen Thật ra là>. <... Ôi tôi thật ngốc
Ông Xcoder

1
Bây giờ tôi có rất nhiều việc phải chơi gôn ....
Ông Xcoder



3

Bong bóng , 42 byte

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 byte

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

Đầu ra mã hóa cứng.

Hãy thử nó ở đây.


Tôi có thể chỉnh sửa phần mã hóa JS và C # thành câu trả lời của bạn không?
LiefdeWen

Được rồi, bạn có thể lưu 5 byte trên C # với nguyên văn bằng chữ o=>@"...và sau đó thay thế \nbằng một dòng mới thực sự.
LiefdeWen

2

C #, 86 byte

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

Hãy thử nó ở đây.


Thách thức. Tìm thấy tổng kích thước nhỏ hơn một chút (tiêu đề + chân trang + mã), nhưng trao đổi tiêu đề / chân trang nhỏ hơn cho chính lớn hơn một chút so với của bạn: Hãy thử trực tuyến!
Đánh dấu Rejhon

@MarkRejhon Thật không may, đây là phần chính được tính với chương trình hoặc chức năng mặc định. ;) Với phần bổ sung, o=>{} nó sẽ là 98 byte trong trường hợp của bạn.
Kevin Cruijssen

2

Võng mạc , 59 byte


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

Hãy thử trực tuyến! Giải thích: Giai đoạn đầu tiên chỉ đơn giản là tạo như sau:

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

Giai đoạn thứ hai sau đó mở rộng tất cả các _s bằng cách lặp lại chúng và ký tự trước đó 3 lần, trong khi giai đoạn thứ ba biến Vs thành \/s.



2

05AB1E , 34 31 byte

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

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

Giải trình

„_ 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

Giải pháp thay thế 31 byte

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

ÀÀÀtrong phiên bản thay thế đó [O_O"]...
Bạch tuộc ma thuật Urn

@MagicOctopusUrn: Vâng ... Tôi chưa tìm thấy cách nào ngắn hơn để làm hoặc giải quyết nó: P
Emigna

1
Tôi đồng tình, tôi đã dành một vài phút cố gắng quá; Không có cách nào xung quanh nó tôi có thể thấy xD.
Bạch tuộc ma thuật Urn

2

CSS, 225 223 byte

-2 byte nhờ vào Stephen S, đã xóa thêm khoảng trắng

Tôi không chắc chắn chính xác nếu điều này được tính bởi vì CSS không thực sự là ngôn ngữ lập trình, nhưng về mặt kỹ thuật CSS có thể độc lập do <html>phần tử được tự động tạo nếu không có ngôn ngữ .

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

Và đây là một phiên bản với phông chữ đơn cách, 247 246 byte .

-1 byte nhờ Stephen S, đã xóa thêm khoảng trắng

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


Tôi nghĩ bạn có thể xóa một số không gian trong CSS xung quanh :s và {}s
Stephen

2

05AB1E , 35 32 31 byte

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

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

Phương pháp khác 100% so với Emigna.


Chỉnh sửa: Nếu tôi bắt đầu với mẫu đã được chuyển đổi, tôi có thể cắt ra 3 byte.


"/ _\"            # 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 byte

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

JavaScript (ES6), 103 94 byte

-9 byte nhờ @Shaggy

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

JavaScript (ES6), 106 byte

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


@Shaggy duh, tôi biết điều đó, thậm chí đã sử dụng nó gần đây. Cảm ơn!
Stephen


@JoshuaBell cứ thoải mái đăng bài đó như câu trả lời của riêng bạn, đó chắc chắn không phải là một môn đánh gôn của tôi :) (nó cũng rất khéo léo)
Stephen

1

Ruby, 72 70 byte

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

Chỉnh sửa mới nhất: tránh tăng gấp đôi \bằng cách đặt các chuỗi ''thay vì "".

Ungolfed (lưu ý trong các chỉ mục chuỗi âm Ruby bao quanh. -1Là ký tự cuối cùng.)

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

Batch Windows, 122 byte

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

Khá tự khám phá.


1

Brainf * ck 387 byte

Thậm chí không chắc đây có phải là một thứ không nhưng tôi đã chán và đã làm nó cho sh * ts và cười khúc khích :)

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

Chỉnh sửa: TIL: Tôi hiệu quả hơn 54,28% so với một số trình tạo tôi tìm thấy trực tuyến ^. ^

Edit2: Dùng thử trực tuyến Đảm bảo Wrap được bật cho hành vi tràn bộ nhớ trong các tùy chọn


1

COBOL, 238 byte

Được biên dịch với cobol mở. Lưu ý rằng thụt lề là một tab duy nhất, không phải khoảng trắng, ngay cả khi trang web này định dạng theo cách đó.

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


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.