Le défi
Étant donné une liste de mots ["Programming", "Puzzles", "Code", "Golf"]
les mots sont croisés:
Programmation u z z G l C ode ls F
L'algorithme
- Vous devez traiter la liste dans l'ordre donné.
- Les mots sont imprimés dans des orientations alternées, en commençant horizontalement .
Les deux mots se croisent à la première lettre du premier mot qui est également présente dans le deuxième mot. Si cette lettre apparaît plusieurs fois dans le deuxième mot, prenez la première.
Exemple :
["no", "on"]
devient:o n o
et non
n o n
Notes complémentaires
- Les mots adjacents dans la liste auront au moins une lettre commune.
["Hi", "there"]
n'est pas une entrée valide. - Les mots n'entreront jamais en collision. Il y aura toujours suffisamment d'espace pour imprimer le mot à la première intersection possible.
["Hello", "there", "end", "hello"]
n'est pas une entrée valide - La correspondance est sensible à la casse.
- Les mots peuvent s'étendre vers la gauche et vers le haut.
- Les lettres des mots horizontaux doivent être séparées par un espace.
- La liste d'entrée contiendra au moins deux mots.
- Tous les mots correspondront à l'expression régulière:
[A-Za-z]+
- Vous pouvez imprimer autant d'espaces blancs ou de nouvelles lignes que vous le souhaitez, tant que les mots sont correctement enchaînés.
- D'un autre côté, vous ne pouvez pas ajouter d'autres espaces blancs de tête. Le mot qui flotte le plus à gauche n'a aucun espace de tête, les autres lignes ont tellement d'espaces de tête qu'il s'aligne correctement.
- Votre programme doit être capable de gérer une quantité arbitraire de mots
Règles
- Fonction ou programme complet autorisé.
- Règles par défaut pour les entrées / sorties.
- Des échappatoires standard s'appliquent.
- C'est le code-golf , donc le nombre d'octets le plus bas l'emporte. Tiebreaker est une soumission antérieure.
Cas de test
Liste des entrées sur la première ligne, la sortie commence sur la deuxième ligne.
["Stack", "Exchange"] E X c h S tack n g e
["Ce", "site", "diplômé", "enfin"] F est n ce diplômé le l y
Codage heureux!
site
etgraduated
estt
Réponses:
JavaScript (ES6) 253
En tant que fonction anonyme avec un paramètre de tableau
la source
ANSI C, 385
390caractèresAppelez ça comme ceci:
./crossword This site graduated finally
Version non golfée:
Merci tucuxi pour les conseils!
la source
a++)N+=strlen(v[a])
=>)N+=strlen(v[a++])
char F[W][H],*p
=>char*p,F[W][H]
for
, remplacerk++)putchar(F[k][l]
par)putchar[k++][l]