Железные частицы вокруг магнита


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) координаты провода (индексируется 1) и возвращает матрицу 7x7 с символами.






0

Древесный уголь , 21 байт

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

Попробуйте онлайн! Принимает 0-индексированный столбец и строку в качестве ввода. Объяснение:

GL⁷-

Нарисуйте треугольник -с.

↙⁶

Нарисуйте линию вдоль гипотенузы. (Это неправильный путь, но мы исправим это позже.)

X

Нарисуйте, Xчто показывает положение провода. (Конечно, здесь можно использовать любой другой символ ASCII.) Это завершает одну восьмую часть рисунка.

‖B↘¬

Отразите три раза ( ¬= влево + вниз), преобразуя символы, чтобы почти завершить диаграмму.

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

J±N±N

Перейти в верхнем левом углу желаемого выхода.

T⁷¦⁷

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.