Частинки заліза навколо магніту


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

Функція, яка приймає (рядок, стовпчик) координати дроту (1-індексований) і повертає 7x7 матрицю з символами.






0

Вугілля деревне , 21 байт

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

Спробуйте в Інтернеті! Приймає 0-індексований стовпець і рядок як вхідні дані. Пояснення:

GL⁷-

Накресліть трикутник -s.

↙⁶

Накресліть лінію гіпотенузи. (Це неправильний шлях, але ми це вирішимо пізніше.)

X

Намалюйте те, Xщо показує положення дроту. (Звичайно, тут може бути використаний будь-який інший символ ASCII.) Це завершує одну восьму частину малюнка.

‖B↘¬

Відбийте три рази ( ¬= вліво + вниз), трансформуючи символи, щоб майже виконати діаграму.

Відбивайтеся, не перетворюючи, щоб переключити /s на \s, щоб вони тепер вказували навколо, Xа не на нього.

J±N±N

Перейти до верхнього лівого краю потрібного виводу.

T⁷¦⁷

Обріжте результат до потрібного розміру.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.