Partículas de hierro alrededor de un imán.


14

Hay algunas partículas de hierro en un tablero. Pasamos un cable de corriente a través de ese tablero y las partículas forman círculos. Muestre estos círculos si la entrada dada es la posición del cable.

Considere que el tablero es una cuadrícula de tamaño 7x7 (fijo)

No se permiten espacios en blanco adicionales.

La entrada puede ser indexada 0 o indexada 1. (0-indexado en ejemplos)

Ejemplos

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

Este es el código de golf, por lo que gana el código más corto.


¿Puede la función generar una matriz de 7x7 con los caracteres o necesitamos imprimirla en la consola?
digEmAll

Respuestas:



5

R , 136 119 116 bytes

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}

Pruébalo en línea!

  • -3 bytes guardados gracias a @Giuseppe

Función que toma las coordenadas (fila, col) del cable (indexado en 1) y devuelve una matriz de 7x7 con los caracteres.



1

JavaScript (ES7),  105  103 bytes

Toma la entrada como (y)(x)0 indexada.

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)

Pruébalo en línea!


1

Perl 6 , 90 bytes

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

Pruébalo en línea!

Bloque de código anónimo que toma dos números y devuelve una lista de líneas.



0

Carbón de leña , 21 bytes

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

Pruébalo en línea!Toma la columna y la fila indexadas en 0 como entrada. Explicación:

GL⁷-

Dibuja un triangulo de - s.

↙⁶

Dibuja una línea a lo largo de la hipotenusa. (Esto es al revés, pero lo arreglaremos más adelante).

X

Dibuja el X que muestra la posición del cable. (Cualquier otro carácter ASCII podría usarse aquí, por supuesto). Esto completa un octavo del dibujo.

‖B↘¬

Reflexiona tres veces (¬ = izquierda + abajo) mientras transformas caracteres para completar casi el diagrama.

Reflexione sin transformar para cambiar la /s con el\ s para que ahora apunten alrededor de laX de ella en lugar de hacia ella.

J±N±N

Salta a la esquina superior izquierda de la salida deseada.

T⁷¦⁷

Recorte el resultado al tamaño deseado.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.