Các hạt sắt xung quanh một nam châm


14

Có một số hạt sắt trên một bảng. Chúng ta truyền một dây mang dòng điện qua bảng đó và các hạt tạo thành vòng tròn. Hiển thị các vòng tròn này nếu đầu vào đã cho là vị trí của dây.

Coi bảng là một lưới có kích thước 7x7 (cố định)

Không có khoảng trắng thêm được cho phép.

Đầu vào có thể là 0-index hoặc 1-index. (Ví dụ 0 được lập chỉ mục)

Ví dụ

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||||||
-/|||||
--/||||
---/|||

Đây là mã golf nên mã ngắn nhất sẽ thắng.


Hàm có thể xuất ra ma trận 7x7 với các ký tự hay chúng ta cần in nó trên bàn điều khiển?
digEmAll

Câu trả lời:



5

R , 136 119 116 byte

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}

Hãy thử trực tuyến!

  • -3 byte được lưu nhờ @Giuseppe

Hàm lấy tọa độ (hàng, col) của dây (được lập chỉ mục 1) và trả về ma trận 7x7 với các ký tự.



1

JavaScript (ES7),  105  103 byte

Lấy đầu vào là (y)(x), 0 chỉ mục.

Y=>X=>(g=x=>y<7?`/\\-|X
`[h=(X-x)**2,v=(Y-y)**2,x<7?h<v?2:h>v?3:h?x<X^y<Y:4:5]+g(x<7?x+1:!++y):'')(y=0)

Hãy thử trực tuyến!


1

Perl 6 , 90 byte

{<| v - \ X />[1+([-]($_>>.abs).sign||3+[*]($_).sign)for ^7-$^a X ^7-$^b].rotor(7)>>.join}

Hãy thử trực tuyến!

Khối mã ẩn danh có hai số và trả về một danh sách các dòng.



0

Than , 21 byte

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

Hãy thử trực tuyến! Lấy cột và hàng 0 chỉ mục làm đầu vào. Giải trình:

GL⁷-

Vẽ một tam giác của -s.

↙⁶

Vẽ một đường dọc theo cạnh huyền. (Đây là cách sai nhưng chúng tôi sẽ sửa nó sau.)

X

Vẽ cái Xđó cho thấy vị trí của dây. (Tất nhiên, bất kỳ ký tự ASCII nào khác có thể được sử dụng ở đây.) Điều này hoàn thành một phần tám bản vẽ.

‖B↘¬

Phản ánh ba lần ( ¬= trái + xuống) trong khi chuyển đổi các ký tự để gần như hoàn thành sơ đồ.

Phản xạ mà không biến đổi để chuyển đổi /s với \s để bây giờ chúng chỉ xung quanh Xthay vì hướng về phía nó.

J±N±N

Nhảy lên trên cùng bên trái của đầu ra mong muốn.

T⁷¦⁷

Cắt kết quả đến kích thước mong muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.