Nhẫn BII của ASCII


24

Các vòng Borromean là một bộ ba vòng tròn tò mò, được liên kết sao cho việc loại bỏ bất kỳ một trong số chúng sẽ hủy liên kết hai vòng còn lại:

nhập mô tả hình ảnh ở đây

Bạn có thể tự làm một bộ cho mình với một vài dây cao su và vòng chất kết dính . Với nhiều dây cao su hơn, thật dễ dàng để tạo ra bất kỳ liên kết nào của người Brunei .

Viết chương trình hoặc chức năng xuất ra (in hoặc trả về) biểu diễn nghệ thuật này của các vòng Borromean:

    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

Các dòng có thể có dấu cách và có thể có một dòng mới.

Mã ngắn nhất tính bằng byte thắng.


2
Tôi phải nói rằng đây là một thử thách khá khó khăn vì sản lượng dự kiến đơn giản như thế nào
Beta Decay

3
Tôi hơi thất vọng. Thiết nghĩ rằng thách thức sẽ là lấy một số nguyên và các vòng đầu ra có kích thước đó.
Blacklight Shining

vâng, tôi cũng nghĩ vậy (chương trình lấy int làm đầu vào và sau đó rút ra Liên kết Brunnian với nhiều thành phần đó, nhưng đó không phải là duy nhất, có thể là một số giao cắt?). Đó là loại chương trình sẽ phải thực sự làm tìm kiếm (hoặc ít nhất là thử và sai - làm những chiếc nhẫn đan và nếu tôi loại bỏ một, làm đi miễn phí?) Thay vì chỉ vẽ một bức tranh cố định ...
Alexey

Câu trả lời:


7

CJam, 53 51 50 49 byte

Chuyển đổi cơ sở cũ đơn giản ...

"FÓîÞ¤ÛY­ËB[¢O²êÍÓ
}²|äG"299b4b"+ -|"f=B/N*

Tất cả các ký tự đều nằm trong phạm vi ASCII mở rộng (mã ASCII từ 1 đến 255), vì vậy số lượng ký tự == số byte.

Dùng thử trực tuyến tại đây và lấy mã gốc ở đây


Chỉ tò mò, dòng mới trong tra cứu của bạn ở đâu?
Maltysen

@Maltysen Tôi không có nó. B/N*chia nhỏ bởi 11 ký tự và tham gia là dòng mới
Trình tối ưu hóa

đó là coooool.
Maltysen

6

Pyth - 51 byte

Tôi chắc chắn ai đó sẽ đánh bại điều này nhanh chóng, nhưng chỉ là một câu trả lời nén cơ bản vì tôi cảm thấy lười biếng. Tôi sẽ cố gắng viết một câu trả lời nghiêm túc sớm thôi.

s@L"
 +-|"jC" zB²;¶Ê ¿ïÁ»#-ÌClHõy%|ap"5

Hãy thử nó ở đây trực tuyến .

s              Reduce on string concatenation
 @L            Map second arg to index first arg
  "..."        String of all chars (Pyth allows literal newlines)
  j            Base conversion to list
   C           Base conversion 256 -> 10
    "..."      Base 256 string
   5           To Base 5

4

Bình thường, 49 byte

jbc11s@L"+ -|"jC"Tª]UʨWÕÝ_K¨}ÝÝ÷K¨Ý]Òê]UÕ*¡"4

Trình diễn.

Điều này sử dụng mã hóa cơ sở 4 và cắt chuỗi thành mười một, sau đó nối lại chúng trên dòng mới.


3

Hồng ngọc, 110

-2.upto(8){|i|s=" "*(i%6)+"+-----+"*(1-i%2)+" "*9
6.times{|j|"@d me?K[RR@"[i+2].ord>>j&1>0&&s[j*2]=?|}
puts s}

Một cái gì đó khác với chuyển đổi cơ sở thẳng.

Ung dung:

-2.upto(8){|i|                                           #for each line
  s=" "*(i%6)+"+-----+"*(1-i%2)+" "*9                    #load s with "+-----+" (if required!) padded appropriately with leading spaces and with nine trailing spaces.   
  6.times{|j|"@d me?K[RR@"[i+2].ord>>j&1>0&&s[j*2]=?|}   #replace characters with | as necessary, according to the 6-bit number encoded by each character in the magic string.
  puts s}                                                #print the line.

3

Ruby, 117 byte

Không chiến thắng, nhưng tôi nghĩ đó là một cách tiếp cận dễ thương:

puts'    --
    |     |
--  |
|   | |   |
| -||
| | | | | |
| | -|
| |   | |
-||
  |     |
  --'.gsub /-./,'+\0---+ '

2

BrainFuck, 361 byte

Đây là một chương trình BrainFuck nhỏ, chỉ in char bằng char.

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

1

Staq , 109 ký tự

&iiiqi{1" "}{211}{c"| "}{fcc}{o"+-|"}{p"+--"}{r"---+"}{ec;}22pr;22c22epr21ec2f2ecor1effcefor;f2ceor1e2c22e2pr

đầu ra:

Executing D:\codegolf\Staq borromean rings.txt

    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

Execution complete.
>

0

Python 3, 139 byte

Đây là lần gần nhất tôi có thể in trực tiếp (sẽ là 134 byte) mà không thực sự làm như vậy .... Tôi không chắc làm thế nào để rút ngắn nó nữa.

a='+-----+'
b='+-|---+'
c=' '*4
d='| '
e=c+d
print(c+a,e*2,a+e[1:],"|   | "*2,d+b+" |",d*6,d+d+b,"| |   "*2,b+" |",e[2:]+e,"  "+a,sep='\n')
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.