Das Brettspiel
Im Brettspiel " Carcassonne " platzieren die Spieler Kacheln, indem sie ihre Kanten aufeinander abstimmen, und erzielen die höchsten Punktzahlen, indem sie große, zusammenhängende Geländeflächen erstellen. Das Folgende sind (ungefähr) die Arten und Mengen der im Spiel enthaltenen Kacheln:
#01
x4
#02
x5
#03
x8
#04
x2
#05
x9
#06
x4
#07
x1
#08
x3
#09
x3
#10
x3
#11
x4
#12
x5
#13
x3
#14
x3
#15
x2
#16
x5
#17
x5
#18
x2
#19
x3
#20
x1
#21
x5
#22
x2
#23
x1
#24
x1
#25
x1
Die Aufgabe
Sie müssen eine Kachel durch Anpassen der Kanten platzieren und gleichzeitig versuchen, die größtmöglichen zusammenhängenden Geländeflächen beizubehalten.
Platzierung
- Spielsteine können nur auf eine der (bis zu 4) freien Stellen neben einem vorhandenen Spielstein (oder vorhandenen Spielsteinen) im Spielbereich gelegt werden.
- Fliesen können um 90, 180 oder 270 Grad gedreht werden.
Kantenanpassung
- Die Kanten einer platzierten Kachel müssen mit den Berührungskanten der (bis zu 4) benachbarten Kacheln übereinstimmen, dh berührende Pixel haben dieselbe Farbe.
Angrenzendes Gelände
- "Schließen eines Geländebereichs" bezieht sich auf das Platzieren einer Kachel, sodass ein zusammenhängender Farbbereich nicht mit weiteren Kachelplatzierungen fortgesetzt werden kann.
- Wenn eine alternative Platzierung möglich ist, muss sie über jeder Platzierung von Kacheln ausgewählt werden, die einen Geländebereich schließen würde.
- Wenn Sie zwischen mehreren Abschlussplatzierungen wählen müssen, wählen Sie eine beliebige. Wenn Sie zwischen mehreren nicht abschließenden Placements wählen müssen, wählen Sie eines aus.
- Ignorieren Sie # ff00ff (die Eckpixel), wenn Sie zusammenhängende Bereiche berechnen. Ignorieren Sie auch Gebäude, dh Farbbereiche, die bereits vollständig von einer Fliese umschlossen sind.
Eingang
Die Eingabe besteht aus zwei Bildern:
Der Spielbereich.
- Der anfängliche Spielbereich besteht aus einem Plättchen
#11
(einem einzelnen Plättchen). - Der als Ausgabe erstellte erweiterte Wiedergabebereich muss auch als Eingabe unterstützt werden.
- Der anfängliche Spielbereich besteht aus einem Plättchen
Die zu platzierende Kachel.
- Alle Beispielkacheln müssen als Eingabe unterstützt werden.
Bestimmen Sie übereinstimmende Kanten / zusammenhängendes Gelände nur anhand dieser Bilddaten. Keine Hardcodierung.
Ausgabe
- Die Ausgabe ist ein Bild, das den resultierenden Spielbereich nach dem Platzieren der Kachel zeigt.
- Das Bild muss mit Ihrem eigenen Programm kompatibel sein, dh es kann als Spielbereichseingang verwendet werden.
- Wenn es nicht möglich ist, eine Kachel zu platzieren, wird ein Fehler zurückgegeben.
Das können Sie annehmen
- Fliesen haben immer eine Größe von 55 x 55 Pixel
- In Kacheln werden immer nur die Farben angezeigt, die derzeit in den Beispielkacheln verwendet werden.
Anmerkungen
- Ihre Antwort muss nach mindestens 2 Durchgängen eine Beispielausgabe enthalten (mehr wird empfohlen).
- Dies ist eine teilweise und ungenaue Wiedergabe des ursprünglichen Brettspiels. Sie müssen keine der hier nicht genannten Regeln oder Taktiken anwenden.
Ergebnis
- Ihre Punktzahl ist die Byteanzahl Ihrer Übermittlung.
- Bilddaten sind in Ihrer Partitur nicht enthalten.
- Die niedrigste Punktzahl gewinnt.
Ein vollständiges Spiel spielen
Möglicherweise möchten Sie ein Skript schreiben, das Ihre Vorlage verwendet, um ein vollständiges Spiel zu spielen, das aus folgenden Elementen bestehen kann:
- Platzieren einer Kachel, die pseudozufällig aus dem vollständigen Satz von 85 ausgewählt wurde.
- Bringen Sie das Plättchen zum Set zurück, wenn es nicht platziert werden kann.
- Wiederholen, bis alle Kacheln platziert wurden - oder bis zwei Kacheln in einer Reihe nicht mehr platziert werden können.
Es wird nicht in Ihre Byteanzahl einbezogen oder Ihre Punktzahl verbessert, aber ich werde wahrscheinlich eine Prämie für diese Art von Antwort anbieten.