磁石の周りの鉄の粒子


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

R136の 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}

オンラインでお試しください!

  • @Giuseppeのおかげで-3バイト節約

ワイヤの座標(行、列)(1インデックス)を取得し、文字を含む7x7マトリックスを返す関数。






0

、21バイト

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

オンラインでお試しください!入力として0インデックス付きの列と行を取ります。説明:

GL⁷-

-sの三角形を描きます。

↙⁶

斜辺に沿って線を引きます。(これは間違った方法ですが、後で修正します。)

X

Xワイヤーの位置を示すを描画します。(もちろん、他のASCII文字もここで使用できます。)これで図面の8分の1が完成します。

‖B↘¬

¬文字を変換して図をほぼ完成させながら、3回(=左+下)反映します。

変換せずに反射して、/sをs に切り替えて、sを\s Xに向けるのではなく、その周りを指すようにします。

J±N±N

目的の出力の左上にジャンプします。

T⁷¦⁷

結果を希望のサイズにトリミングします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.