Le New York Times a un jeu en ligne quotidien appelé Letter Boxed (le lien est derrière un mur payant; le jeu est également décrit ici ), présenté sur un carré comme suit:
On vous donne 4 groupes de 3 lettres (chaque groupe correspond à un côté sur l'image); aucune lettre n'apparaît deux fois. Le but du jeu est de trouver des mots composés de ces 12 lettres (et de ces lettres uniquement) de telle sorte que:
- Chaque mot comporte au moins 3 lettres;
- Les lettres consécutives ne peuvent pas être du même côté;
- La dernière lettre d'un mot devient la première lettre du mot suivant;
- Toutes les lettres sont utilisées au moins une fois (les lettres peuvent être réutilisées).
Dans ce défi, vous recevez les lettres et une liste de mots. Le but est de vérifier si la liste de mots est une solution valide de boîte aux lettres.
Contribution
La saisie consiste en (1) 4 groupes de 3 lettres et (2) une liste de mots. Il peut être dans n'importe quel format approprié.
Sortie
Une valeur vraie si la liste de mots est une solution valide au défi Boîte aux lettres pour ces 4 × 3 lettres, et une valeur de falsey sinon.
Cas de test
Groupes de lettres = {{I,C,O}, {M,R,E}, {G,N,S}, {A,P,L}}
.
Des valeurs véridiques
- PÈLERINAGE, CLÔTURE
- CULTURES, VOILE, LEAN, NOPE, ENIGMA
Valeurs de Falsey
- PÈLERINAGE, ÉCONOMIES (ne peut pas avoir de CO car ils sont du même côté)
- CROPS, SAIL, LEAN, NOPE (G et M n'ont pas été utilisés)
- PÈLERINAGE, ENCEINTE (U n'est pas l'une des 12 lettres)
- ENCLOSE, PELGRIMAGE (la dernière lettre du 1er mot n'est pas la première lettre du 2e mot)
- SCAMS, SO, ORGANIZE, ELOPE (tous les mots doivent contenir au moins 3 lettres).
Notez que dans ce défi, nous ne nous soucions pas de la validité des mots (partie d'un dictionnaire).
Notation:
Ce code-golf , le score le plus bas en octets gagne!
la source
no letter appears twice
[]
et0
sont falsey. Pouvons-nous produire l'un ou l'autre, ou devons-nous être cohérents?Réponses:
JavaScript (ES6),
130126 octets(letters)(words)
Essayez-le en ligne!
Étape 1
Étape 2
la source
Gelée ,
3029 octetsEssayez-le en ligne!
Un lien dyadique qui prend la liste de mots comme argument de gauche et la liste aplatie de lettres dans la boîte comme argument de droite. Il revient
1
pour vrai et0
pour faux.Explication
la source
05AB1E ,
37353332312928 octets-2 octets en s'inspirant de l'
ê
approche @Emigna utilisée dans sa réponse 05AB1E .-3 octets grâce à @Grimy .
Prend une liste de liste de caractères pour les mots comme première entrée et la liste aplatie de douze lettres comme deuxième entrée.
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
la source
¹€g3@
->DO2@
après le premier contrôle ( TIO )05AB1E , 42 octets
Essayez-le en ligne!
la source
P
après les cartes et à utiliser)˜P
à la fin. 41 octets Belle approche avecê
cependant! Enregistré 2 octets dans ma réponse 05AB1E.Python 2 , 171 octets
Essayez-le en ligne!
la source
Gelée , 34 octets
Un lien dyadique acceptant les mots à gauche et les groupes de lettres à droite qui donne
1
si valide et0
sinon.Essayez-le en ligne! Ou consultez la suite de tests .
la source
Haskell , 231 octets
Essayez-le en ligne!
Pas le meilleur score. Certains gourous de Haskell seront probablement en mesure d'obtenir cela sous 100 octets.
Usage
Explication
la source
Haskell , 231 octets
Une variation Haskell différente, exactement de la même taille que @Paul Mutser :)
Essayez-le en ligne!
Non golfé
la source
Rubis , 126 octets
Essayez-le en ligne!
la source
grep
.puts f[l,['PILGRIMAGE','ENCLOSE','EG']]
retournetrue
au lieu defalse
.Java (JDK) , 188 octets
Essayez-le en ligne!
Explications
Crédits
la source
Fusain , 63 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Concaténez les expressions ci-dessous et affichez-les
0
si l'une d'entre elles inclut un0
sinon1
.Pour chaque mot de la solution, indiquez si sa longueur est d'au moins 3.
Pour chaque lettre de la solution, indiquez si elle apparaît dans le puzzle.
Pour chaque lettre du puzzle, indiquez si elle apparaît dans la solution.
Pour chaque lettre de la solution, vérifiez que la lettre précédente n'est pas dans le même groupe, sauf s'il s'agit de la première lettre d'un mot, auquel cas vérifiez qu'elle est égale à la dernière lettre du mot précédent, sauf si elle est la première lettre de la solution, auquel cas il suffit de l'ignorer.
la source
Python 2 ,
168156 octetsEssayez-le en ligne!
Retourne
1
pour vrai,0
pour falsey.la source