Intro
In den meisten Schriftarten alle die Großbuchstaben des Alphabets neben BDO
haben einzelne Linien etwa einige der vier Ecken des Charakters des Begrenzungsrechteck zu berühren: ACEFGHIJKLMNPQRSTUVWXYZ
.
Zum Beispiel A
berühren die beiden Beine die untere linke und die untere rechte Ecke des Charakters. Ebenso C
berührt es seine oberen und unteren rechten Ecken (es ist ein bisschen gebogen, aber es ist nah genug). L
Berührt nur die linke obere und rechte untere Ecke mit einzelnen Linien. Die untere linke Ecke von L
ist ein Eckpunkt, nicht das Ende einer einzelnen Linie.
Hier ist eine Tabelle, welche Zeichen welche Ecken berühren, entsprechend der Stack Exchange-Schriftart, die ich (und hoffentlich Sie) sehe. 1
ist für oben links, 2
ist für oben rechts, 3
unten links, 4
unten rechts.
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
Installieren
Stellen Sie sich vor, diese Eckberührungslinien verlaufen in Richtung der Ecke, die sie berühren, damit die Anordnungen dieser Zeichen in einem Raster "verbunden" werden können.
Zum Beispiel alle Zeichen in
A
C X
sind verbunden, weil die Verbindung links unten A
und rechts oben C
und die Verbindung rechts unten A
und links oben erfolgt X
.
Jedoch,
CAX
hat keine Verbindungen, da Verbindungen nur diagonal von einem Zeichen zum nächsten auftreten .
Herausforderung
Schreiben Sie das kürzestmögliche Programm (in Byte), das alle Zeichen ACEFGHIJKLMNPQRSTUVWXYZ
in einem großen, vollständig verbundenen Baum ausgibt , gemäß den obigen Regeln. Jedes Zeichen muss genau einmal vorkommen. Verwenden Sie Leerzeichen als Leerzeichen.
Beispiel
Alles in diesem 23-Buchstaben-Baum kann von irgendetwas anderem über die oben definierten diagonalen Verbindungen erreicht werden:
Q
A J R
C U S Y
I M N
E H X
F L T
G Z K P
V W
Anmerkungen
- Sie können Ihre Lösung fest codieren.
- Ihre Ausgabe sollte nur
ACEFGHIJKLMNPQRSTUVWXYZ
Leerzeichen und Zeilenumbrüche enthalten.BDO
wird nicht verwendet. - Führende / nachfolgende Leerzeichen sind in Ordnung, solange alle Verbindungen richtig positioniert sind.
- Das Ausgaberaster sollte nicht größer als 30 x 30 Zeichen sein (einschließlich Zeilenumbrüchen und Leerzeichen).
- Es werden nur Eckverbindungen berücksichtigt. Der Boden von
Y
verbindet sich mit nichts. Sie müssen die Eckverbindungen aus der obigen Tabelle verwenden. - Nicht alle verbindbaren Ecken müssen mit etwas verbunden werden. Verbindbare und nicht verbindbare Ecken können aneinander grenzen.
- Ausgabe auf Standardausgabe. Es erfolgt keine Eingabe.
- Das Einfügen eines Konnektivitätsdiagramms mit Schrägstrichen, wie es Peter Taylor getan hat, ist hilfreich, aber nicht erforderlich.
Update:
githubhagocyte hat auf Github eine Überprüfung der Gültigkeit des Alphabetbaums durchgeführt .