Comme deux personnes l'ont peut-être remarqué récemment, j'ai largement abandonné le développement de Braingolf parce qu'il est ennuyeux et sans inspiration, et je suis passé à 2Col qui est un peu plus intéressant et n'est pas conçu pour être un langage de golf.
La caractéristique déterminante de 2Col est que chaque ligne de code doit comporter exactement 2 caractères, à l'exclusion de la nouvelle ligne. Cela signifie que la longueur d'un programme 2Col peut toujours être calculée comme 3n-1
où n
est le nombre de lignes dans le programme.
Voici donc mon défi: étant donné le code 2Col sous forme de chaîne, affichez true s'il s'agit d'un code 2Col valide (chaque ligne est exactement de 2 caractères et conforme à la 3n-1
formule), et falsey sinon.
Contribution
L'entrée doit être considérée comme une chaîne unique ou un tableau de caractères.
Production
Une valeur véridique si la chaîne d'entrée est une mise en page valide, et une valeur falsey dans le cas contraire.
Votre code doit être cohérent dans les valeurs de vérité / falsey qu'il utilise
Cas de test
======
F!
$^
----
truthy
======
======
*8
+1
Sq
----
truthy
======
======
nop
xt
----
falsey
======
======
+1
+1
#^
----
falsey
======
======
<empty string>
----
falsey
======
======
ye
----
truthy
======
======
no<space>
----
falsey
======
======
test
----
falsey
======
======
puzzle
----
falsey
======
Notation
C'est le code-golf donc le moins d'octets gagne!
la source
true
falsey etfalse
véridiquepuzzle
. Cela rendra invalides les solutions qui font toute la longueur de la chaîne modulo 3, puis annulées (ce qui fonctionne pour tous les cas de test actuels).Réponses:
Brachylog (2), 4 octets
Essayez-le en ligne!
Programme complet (car c'est un problème de décision ; les programmes complets Brachylog sortent en
false.
cas d'échec d'une assertion,true.
sans un).Explication
Les abonnements sur
l
sont l'une des dernières fonctionnalités de Brachylog (bien que toujours plus ancienne que le défi), et c'est un bon défi pour les utiliser.la source
ṇlᵛ2
etṇlᵛ²
fonctionnerait également.JavaScript (ES6),
24282524 octetsProgramme fixe et rasé de trois octets grâce à @ PunPun1000
Rasé d'un octet grâce à @Shaggy
Renvoie vrai si valide et faux sinon.
la source
s=>s.match(/^(..\n)*..$/)
devrait correspondre correctement à ces deux éléments tout en étant plus court à 25 octetstest
au lieu dematch
.Cubix , 20 octets
Renvoie 1 pour véridique et rien pour falsey
Cubifié
ABq
slurp dans toutes les entrées, inversez-le et poussez le EOI (-1) au bas de la pile>;;
Entrez dans la boucle et retirez les éléments de la pile?
Test pour EOI (-1).1uO@
poussez 1 vers la pile, tournez sur la sortie entière et arrêtez_
réfléchissez sur le?
qui redirige vers lew
changement de voieN-!$@;U
pousser le saut de ligne (10) sur la pile, soustraire, résultat du test, sauter l'arrêt si faux, retirer le résultat et faire demi-tour;;>
supprimez les sauts de ligne de la pile et redirigez-les dans la boucle.Essayez-le en ligne!
la source
Python, 51
Coureur de cas de test:
la source
Haskell,
235232 octetsJe me suis inspiré de quelques autres solutions, astuce astucieuse pour l'ajouter
"\n"
.la source
Gelée , 6 octets
Essayez-le en ligne!
Explication:
la source
Rétine , 10 octets
Essayez-le en ligne! Sorties
1
ou0
selon le cas.la source
JavaScript (ES6),
3524 octetsEssayez-le
la source
There's gotta be a shorter way to do this with RegEx!
Ouaip (et le mien n'est probablement pas optimal)05AB1E , 6 octets
Essayez-le en ligne!
la source
J-uby ,
1918 octets:=~&
crée une fonction anonyme qui prendx
et renvoie0
si elle correspond à l'expression régulière/^(..\n*)..$/m
, ounil
autrement.la source
Java (OpenJDK 8) , 25 octets
Essayez-le en ligne!
Vérifie si la chaîne d'entrée a un nombre quelconque de lignes suivi d'un saut de ligne et d'une ligne finale sans une (garantit au moins une ligne)
la source
Utilitaires Bash + GNU, 13
Cela définit la valeur de retour du shell (accessible en
$?
) sur 0 pour false et 1 pour true. C'est en fait le sens opposé par rapport à la convention shell standard , donc pour faire ce que vous devez faire:Utilitaires Bash + GNU, 15
la source
Rubis, 22 octets
la source
Japt ,
76 octetsEssayez-le en ligne
Explication
la source