J'ai fait des recherches de mots récemment, et je pensais que ce serait tellement plus facile si tous les mots se lisaient de gauche à droite. Mais réécrire toutes les lignes demande beaucoup d'efforts! Je demande donc aux golfeurs de code de vous aider.
(Avertissement: L'histoire ci-dessus peut ou non être exacte à distance.)
Votre code prendra une grille rectangulaire et affichera toutes les lignes à travers elle dans les deux directions.
La sortie doit contenir les 8 rotations de la grille (cardinaux et diagonales principales), «lues» de haut en bas, de gauche à droite. (Cela signifie que chaque "ligne" sera dupliquée - une fois en avant et une fois en arrière.)
Les divisions de ligne peuvent être un espace ou un saut de ligne. Si vous choisissez des espaces, les divisions de rotation de la grille doivent être des sauts de ligne; sinon, les divisions de rotation de la grille doivent être deux sauts de ligne.
Exemple d'entrée (pris comme un tableau de caractères, une chaîne multiligne ou un autre format raisonnable)
ABCDE
FGHIJ
KLMNO
PQRST
Exemple de sortie (en utilisant la première option pour les divisions)
ABCDE FGHIJ KLMNO PQRST
E DJ CIO BHNT AGMS FLR KQ P
EJOT DINS CHMR BGLQ AFKP
T OS JNR EIMQ DHLP CGK BF A
TSRQP ONMLK JIHGF EDBCA
P QK RLF SMGA TNHB OIC JD E
PKFA QLGB RMHC SNID TOJE
A FB KGC PLHD QMIE RNJ SO T
L'ordre des rotations "lues" n'a pas d'importance tant que les huit cardinaux et intercardinaux primaires sont exécutés une seule fois.
C'est le code-golf , donc le code le plus court l'emporte. Des échappatoires standard s'appliquent.
la source
Réponses:
Python 3, 181 octets
Explication
Résultats
avec une sortie plus propre (189 octets)
.
la source
MATL , 40 octets
L'entrée est un tableau de caractères 2D en notation Matlab:
La sortie contient chaque "mot" sur une ligne distincte.
Essayez-le en ligne!
la source