Intro
Dans la plupart des polices tous les caractères de l' alphabet en majuscules en plus BDO
avoir des lignes qui touchent à peu près quelques - uns des quatre coins du rectangle de délimitation du personnage: ACEFGHIJKLMNPQRSTUVWXYZ
.
Par exemple, les deux jambes d'un A
"toucher" les coins inférieur gauche et inférieur droit du personnage. De même, C
touche ses coins supérieur et inférieur droit (il est un peu incurvé mais il est assez proche). L
ne touche que ses coins supérieur gauche et inférieur droit avec des lignes simples. Le coin inférieur gauche de L
est un sommet, pas la fin d'une seule ligne.
Voici un tableau de quels caractères touchent quels coins selon la police Stack Exchange que je vois (et j'espère que vous) voyez. 1
est en haut à gauche, en 2
haut à droite, en 3
bas à gauche, en 4
bas à droite.
A: 3 4
C: 2 4
E: 2 4
F: 2 3
G: 2
H: 1 2 3 4
I: 1 2 3 4
J: 1 3
K: 1 2 3 4
L: 1 4
M: 3 4
N: 2 3
P: 3
Q: 4
R: 3 4
S: 2 3
T: 1 2
U: 1 2
V: 1 2
W: 1 2
X: 1 2 3 4
Y: 1 2
Z: 1 4
Installer
Imaginez que ces lignes se touchant se prolongent dans le sens du coin qu'elles touchent afin que les dispositions de ces caractères sur une grille puissent être «connectées».
Par exemple, tous les caractères de
A
C X
sont connectés parce que le coin inférieur gauche A
et le coin supérieur droit de la C
connexion, ainsi que le coin inférieur droit et le coin A
supérieur gauche de la X
connexion.
cependant,
CAX
n'a pas de connexions car les connexions se produisent uniquement en diagonale d'un caractère au suivant .
Défi
Écrivez le programme le plus court possible (en octets) qui génère tous les caractères ACEFGHIJKLMNPQRSTUVWXYZ
dans une grande arborescence entièrement connectée, selon les règles ci-dessus. Chaque personnage doit apparaître exactement une fois. Utilisez des espaces pour l'espace vide.
Exemple
Tout dans cet arbre de 23 lettres est accessible à partir de n'importe quoi d'autre via les connexions diagonales définies ci-dessus:
Q
A J R
C U S Y
I M N
E H X
F L T
G Z K P
V W
Remarques
- Vous pouvez coder en dur votre solution.
- Votre sortie ne doit contenir que des
ACEFGHIJKLMNPQRSTUVWXYZ
espaces et des retours à la ligne.BDO
ne sera pas utilisé. - Les espaces de début / fin sont corrects tant que toutes les connexions sont correctement positionnées.
- La grille de sortie ne doit pas dépasser 30 caractères sur 30 (y compris les retours à la ligne et les espaces).
- Seules les connexions d'angle sont prises en compte. Le bas de
Y
ne se connecte à rien. Vous devez utiliser les connexions d'angle du tableau ci-dessus. - Tous les coins connectables n'ont pas besoin de se connecter à quelque chose. Les coins connectables et non connectables peuvent se border.
- Sortie vers sortie standard. Il n'y a aucune entrée.
- Inclure un graphique de connectivité fait avec des barres obliques comme l' a fait Peter Taylor est une touche utile mais non requise.
Mise à jour:
githubhagocyte a fait un vérificateur de validité de l'arbre alphabétique sur Github .
la source