Es wurde bewiesen, dass die folgenden 13 quadratischen Wang-Kacheln das Flugzeug immer aperiodisch kacheln . Dies bedeutet, dass, wenn die Quadrate in einem Raster mit allen benachbarten Seiten derselben Farbe angeordnet sind, eine Übersetzung des Musters niemals mit sich selbst übereinstimmt.
Wir werden jede Kachel in Textform durch ein 3 × 3-Raster darstellen, das mit Leerzeichen in der Mitte und in den Ecken und den Zahlen 1 bis 5 anstelle der Farben Rot, Grün, Blau, Gelb, Grau an den Rändern gefüllt ist:
2 2 2 1 1 1 4 3 2 2 4 3 2
1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4
3 2 3 2 3 2 1 2 1 4 1 2 2
Tor
Ihre Aufgabe ist es, ein Programm zu schreiben, das Breite und Höhe berücksichtigt und ein gültiges Wang-Kachelraster mit diesen Abmessungen ausgibt. Eine gültige Kachel ist eine Kachel, bei der alle angrenzenden Kachelkanten dieselbe Farbe (oder Nummer) haben. Das kleinste Programm in Bytes gewinnt.
Ihre Eingabe sollte von stdin oder Befehlszeilenargumenten stammen, und die Ausgabe sollte nach stdout gehen. Das genaue Eingabeformat kann alles einigermaßen Offensichtliche sein, wie z >>> wangtiler 3 2
. Die Breite und Höhe sind immer positive ganze Zahlen.
Beispiel (Breite = 3, Höhe = 2)
Beachten Sie, dass beim Layouten der Textkacheln die benachbarten Kanten die erforderlichen redundanten Ziffernpaare bilden:
1 2 1
2 11 22 1
2 3 2
2 3 2
4 55 55 4
1 2 2
(Dies ist NICHT das richtige Ausgabeformat.)
Wir können diese horizontal und vertikal komprimieren, um Folgendes zu erhalten:
1 2 1
2 1 2 1
2 3 2
4 5 5 4
1 2 2
Dieses komprimierte Format ist das richtige Ausgabeformat, das Sie verwenden müssen. Die ungeradzahligen Zeilen müssen ein Leerzeichen enthalten.
Grafischer Bonus
Anstelle einer Textausgabe gibt Ihr Programm möglicherweise ein Bild des gekachelten Rasters aus. Die grafischen Kacheln müssen aus vier 45-45-90 Dreiecken bestehen, die in einem Quadrat angeordnet sind, und fünf leicht unterscheidbare Farben wie die obigen Kacheln verwenden. Die schwarzen Ränder sind nicht erforderlich. Die Grafikkacheln müssen mindestens 32 × 32 Pixel groß sein. Es wird keine "Komprimierung" auf sie angewendet.
Beispiel Bonusbild: (gleiches Raster wie oben)
Der Bonus ist minus 150 Bytes wert.
Anmerkungen
- Sie müssen diesen Satz von 13 Kacheln verwenden.
- Fliesen dürfen nicht gedreht werden.
- Kacheln können beliebig oft vorkommen (auch keine).
- Sie können davon ausgehen, dass eine gültige Kachelung mit beliebigen Maßen möglich ist.