อนุภาคเหล็กรอบ ๆ แม่เหล็ก


14

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

ถือว่าบอร์ดเป็นตารางขนาด 7x7 (คงที่)

ไม่อนุญาตให้ใช้ช่องว่างสีขาวเพิ่มเติม

อินพุตสามารถเป็นดัชนี 0 หรือดัชนี 1 (0 ดัชนีในตัวอย่าง)

ตัวอย่าง

input:3,3 # 'X' is wire here but can be shown by anything other than '\/|-'
output:
/-----\
|/---\|
||/-\||
|||X|||
||\-/||
|\---/|
\-----/

input:1,2
output:
|/-\|||
||X||||
|\-/|||
\---/||
-----/|
------/
-------

input:0,0
output:
X||||||
-/|||||
--/||||
---/|||
----/||
-----/|
------/

input:0,3
output:
|||X|||
||\-/||
|\---/|
\-----/
-------
-------
-------

input:3,0
output:
---\|||
--\||||
-\|||||
X||||||
-/|||||
--/||||
---/|||

นี่คือรหัส - กอล์ฟเพื่อให้ได้รหัสที่สั้นที่สุด


ฟังก์ชั่นสามารถส่งออกเมทริกซ์ขนาด 7x7 กับตัวละครหรือเราจำเป็นต้องพิมพ์มันลงบนคอนโซล?
digEmAll

คำตอบ:



5

R , 136 119 116 ไบต์

function(i,j,m=diag(7),R=row(m)-i,a=j-col(m)){m[]='-'
m[R==a]='\\'
m[R==-a]='/'
m[R<a&R>-a|R>a&-R>a]='|'
m[i,j]=0
m}

ลองออนไลน์!

  • -3 ไบต์บันทึกขอบคุณ @Giuseppe

ฟังก์ชันที่รับ (row, col) พิกัดของ wire (1-indexed) และส่งกลับเมทริกซ์ 7x7 พร้อมตัวอักษร






0

ถ่าน 21 ไบต์

GL⁷-↙⁶X‖B↘¬‖J±N±NT⁷¦⁷

ลองออนไลน์! ใช้คอลัมน์และแถวแบบ 0 ดัชนีเป็นอินพุต คำอธิบาย:

GL⁷-

วาดรูปสามเหลี่ยมของ-s

↙⁶

ลากเส้นไปตามด้านตรงข้ามมุมฉาก (นี่เป็นวิธีที่ผิด แต่เราจะแก้ไขในภายหลัง)

X

วาดเส้นXที่แสดงตำแหน่งของเส้นลวด (แน่นอนว่าสามารถใช้อักขระ ASCII อื่น ๆ ได้ที่นี่) ซึ่งจะทำให้การวาดหนึ่งในแปดของภาพสมบูรณ์

‖B↘¬

สะท้อนสามครั้ง ( ¬= ซ้าย + ลง) ในขณะที่แปลงอักขระให้เกือบสมบูรณ์แผนภาพ

ไตร่ตรองโดยไม่ต้องเปลี่ยนเพื่อสลับ/s กับ\s ดังนั้นพวกเขาจึงXหันไปรอบ ๆแทนที่จะหันไปหามัน

J±N±N

ข้ามไปที่ด้านบนซ้ายของเอาต์พุตที่ต้องการ

T⁷¦⁷

ตัดผลลัพธ์ให้ได้ขนาดที่ต้องการ

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