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-1dónde nestá 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-1fó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

truefalso yfalseverdaderopuzzle. 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
lson 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ᵛ2yṇ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 bytestestlugar dematch.Cubix , 20 bytes
Devuelve 1 por veracidad y nada por falsey
Cubified
ABqsorber 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 alwcambio de carrilN-!$@;Uempuje 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
1o0segú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 tomaxy devuelve0si coincide con la expresión regular/^(..\n*)..$/m, o de lonilcontrario.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