Como algunas personas pueden haber notado últimamente, he abandonado en gran medida el desarrollo de Braingolf porque es aburrido y sin inspiración, y pasé a 2Col, que es un poco más interesante y no está diseñado para ser un lenguaje de golf.
La característica definitoria de 2Col es que cada línea de código debe tener exactamente 2 caracteres de largo, excluyendo la nueva línea. Esto significa que la longitud de un programa de 2Col siempre se puede calcular como 3n-1
dónde n
está el número de líneas en el programa.
Así que aquí está mi desafío: dado el código 2Col como una cadena, genera una verdad si es un código 2Col válido (cada línea tiene exactamente 2 caracteres y se ajusta a la 3n-1
fórmula), y falsey de lo contrario.
Entrada
La entrada debe tomarse como una sola cadena o como una matriz de caracteres.
Salida
Un valor verdadero si la cadena de entrada es un diseño válido, y un valor falso de lo contrario.
Su código debe ser coherente en los valores de verdad / falsey que utiliza
Casos de prueba
======
F!
$^
----
truthy
======
======
*8
+1
Sq
----
truthy
======
======
nop
xt
----
falsey
======
======
+1
+1
#^
----
falsey
======
======
<empty string>
----
falsey
======
======
ye
----
truthy
======
======
no<space>
----
falsey
======
======
test
----
falsey
======
======
puzzle
----
falsey
======
Puntuación
Este es el código de golf, ¡ por lo que gana menos bytes!
fuente
true
falso yfalse
verdaderopuzzle
. Esto hará que las soluciones que hacen toda la longitud del módulo de cadena 3, luego se nieguen (que funciona para todos los casos de prueba actuales) inválidas.Respuestas:
Brachylog (2), 4 bytes
Pruébalo en línea!
Programa completo (porque este es un problema de decisión ; salida de programas completos de Brachylog
false.
si hubo un error de aserción,true.
sin uno).Explicación
Los subíndices
l
son una de las características más nuevas de Brachylog (aunque aún son más antiguas que el desafío), y este es un buen desafío para usarlas.fuente
ṇlᵛ2
yṇlᵛ²
también funcionaría.JavaScript (ES6),
24282524 bytesPrograma fijo y reducido de tres bytes gracias a @ PunPun1000
Afeitado un byte gracias a @Shaggy
Devuelve verdadero si es válido y falso si no.
fuente
s=>s.match(/^(..\n)*..$/)
debe coincidir correctamente con ambos y al mismo tiempo ser más corto en 25 bytestest
lugar dematch
.Cubix , 20 bytes
Devuelve 1 por veracidad y nada por falsey
Cubified
ABq
sorber toda la entrada, invertirla y empujar el EOI (-1) al fondo de la pila>;;
Entra en el bucle y elimina elementos de la pila?
Prueba de EOI (-1).1uO@
empuje 1 a la pila, gire en U hacia la salida entera y pare_
reflexione nuevamente sobre el?
que redirige alw
cambio de carrilN-!$@;U
empuje el avance de línea (10) en la pila, reste, pruebe el resultado, omita el alto si es falso, elimine el resultado y gire en U;;>
eliminar los avances de línea de la pila y redirigirlos al bucle.Pruébalo en línea!
fuente
Python, 51
Prueba caso corredor:
fuente
Haskell,
235232 bytesObtuve mi inspiración de algunas otras soluciones, ingenioso truco añadiendo eso
"\n"
.fuente
Jalea , 6 bytes
Pruébalo en línea!
Explicación:
fuente
Retina , 10 bytes
Pruébalo en línea! Salidas
1
o0
según corresponda.fuente
JavaScript (ES6),
3524 bytesIntentalo
fuente
There's gotta be a shorter way to do this with RegEx!
Sí (y el mío probablemente no es óptimo)05AB1E , 6 bytes
Pruébalo en línea!
fuente
J-uby ,
1918 bytes:=~&
realiza una función anónima que tomax
y devuelve0
si coincide con la expresión regular/^(..\n*)..$/m
, o de lonil
contrario.fuente
Java (OpenJDK 8) , 25 bytes
Pruébalo en línea!
Comprueba si la cadena de entrada tiene cualquier número de líneas seguidas de un avance de línea y una línea final sin una (asegura al menos una línea)
fuente
Bash + utilidades GNU, 13
Esto establece el valor de retorno del shell (accesible en
$?
) en 0 para falso y 1 para verdadero. Esto es en realidad el sentido opuesto en comparación con la convención de shell normal , por lo que para hacer eso bien, debe hacer lo siguiente:Bash + GNU utilidades, 15
fuente
Ruby, 22 bytes
fuente
Japt ,
76 bytesPruébalo en línea
Explicación
fuente