ASCII Borromean Rings


24

ห่วงบอร์เป็นชุดอยากรู้อยากเห็นของสามวงกลมเชื่อมโยงดังกล่าวว่าการกำจัดของหนึ่งของพวกเขาใด ๆ ที่จะยกเลิกการเชื่อมโยงอื่น ๆ ที่สอง:

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

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

เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออก (พิมพ์หรือส่งคืน) การเป็นตัวแทน ASCII-art ของวงแหวน Borromean นี้:

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

บรรทัดอาจมีช่องว่างต่อท้ายและอาจมีการขึ้นบรรทัดใหม่

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


2
ฉันต้องบอกว่านี่เป็นความท้าทายที่ค่อนข้างยากเนื่องจากความเรียบง่ายของผลลัพธ์ที่คาดหวังคือ
Beta Decay

3
ฉันผิดหวังเล็กน้อย คิดว่าความท้าทายจะใช้ขนาดเต็มและวงเอาท์พุทของขนาดนั้น
แบล็กไลท์ส่องแสง

ใช่ฉันก็คิดเช่นกัน (โปรแกรมใช้อินพุตเป็นตัวป้อนข้อมูลจากนั้นก็ดึง Brunnian Link กับองค์ประกอบหลายอย่างนั้น แต่นั่นไม่ได้เป็นเอกลักษณ์ โปรแกรมประเภทนั้นจะต้องทำการค้นหาจริง ๆ (หรืออย่างน้อยก็ลองผิดลองถูก - วงแหวนเหล่านี้จะเชื่อมต่อกันและถ้าฉันลบออกไปทำมันฟรีหรือไม่) แทนที่จะแค่วาดภาพคงที่ ...
alexey

คำตอบ:


7

CJam, 53 51 50 49 ไบต์

การแปลงฐานธรรมดาเก่า ...

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

อักขระทั้งหมดอยู่ในช่วง ASCII ที่ขยายเพิ่ม (รหัส ASCII 1 ถึง 255) ดังนั้นจำนวนอักขระ == จำนวนไบต์

ลองออนไลน์ที่นี่และรับรหัสต้นฉบับที่นี่


แค่อยากรู้อยากเห็นบรรทัดใหม่ในการค้นหาของคุณอยู่ที่ไหน?
Maltysen

@ Maltysen ฉันไม่มี B/N*แยกด้วยตัวอักษร 11 ตัวและเข้าร่วมเป็นบรรทัดใหม่
เครื่องมือเพิ่มประสิทธิภาพ

นั่นคือคูลคูล
Maltysen

6

Pyth - 51 ไบต์

ฉันแน่ใจว่ามีใครบางคนที่จะเอาชนะอย่างรวดเร็วนี้ แต่เพียงคำตอบฐานบีบอัดเพราะฉันรู้สึกขี้เกียจ ฉันจะพยายามเขียนคำตอบที่จริงจังในไม่ช้า

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

ลองมันนี่เกมออนไลน์

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

Pyth, 49 ไบต์

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

สาธิต.

วิธีนี้ใช้การเข้ารหัส 4 ฐานและสับสตริงให้เป็นสิบเอ็ดจากนั้นเข้าสู่บรรทัดใหม่


3

ทับทิม, 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}

สิ่งที่แตกต่างจากการแปลงฐานแบบตรง

Ungolfed:

-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

ทับทิม 117 ไบต์

ไม่ชนะ แต่ฉันคิดว่ามันเป็นวิธีที่น่ารัก:

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

2

BrainFuck ขนาด 361 ไบต์

นี่คือโปรแกรม BrainFuck เล็ก ๆ เพียงพิมพ์ถ่านโดยถ่าน

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

1

Staq , 109 ตัวอักษร

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

เอาท์พุท:

Executing D:\codegolf\Staq borromean rings.txt

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

Execution complete.
>

0

Python 3, 139 ไบต์

นี่คือสิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถพิมพ์ได้โดยตรง (ซึ่งจะเป็น 134 ไบต์) โดยไม่ต้องทำเช่นนั้นจริง .... ฉันไม่แน่ใจว่าจะย่อให้สั้นลงได้อีก

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