Gra planszowa
W grze planszowej „ Carcassonne ” gracze umieszczają płytki, dopasowując ich krawędzie i zdobywając najwyższe wyniki, tworząc duże, ciągłe obszary terenu. Oto (z grubsza) rodzaje i ilości płytek zawartych w grze:
#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
Zadanie
Musisz umieścić kafelek, dopasowując krawędzie, jednocześnie starając się utrzymać możliwie największe ciągłe obszary terenu.
Umieszczenie
- Płytki można umieszczać tylko na jednym (maksymalnie 4) pustych polach sąsiadujących z dowolnymi istniejącymi płytkami (lub płytkami) w obszarze gry.
- Płytki można obracać o 90, 180 lub 270 stopni.
Dopasowywanie krawędzi
- Krawędzie umieszczonej płytki muszą pasować do dotykających się krawędzi (do 4) sąsiadujących płytek, tj. Dotykające się piksele mają ten sam kolor.
Przyległy teren
- „Zamykanie obszaru terenu” odnosi się do umieszczenia płytki w taki sposób, że dalsze sąsiadujące obszary koloru nie mogłyby być kontynuowane przy dalszym umieszczaniu płytek.
- Jeśli możliwe jest alternatywne umieszczenie, należy je wybrać w stosunku do dowolnego położenia płytki, które zamknęłoby obszar terenu.
- Jeśli musisz wybrać jedną z wielu końcowych miejsc docelowych, wybierz dowolne. Jeśli musisz wybierać spośród wielu nie-zamkniętych miejsc docelowych, wybierz dowolne.
- Pomiń # ff00ff (piksele narożne) przy obliczaniu sąsiadujących obszarów. Pomiń także budynki, tj. Obszary koloru już całkowicie zamknięte w kafelku.
Wkład
Dane wejściowe to dwa obrazy:
Plac zabaw.
- Początkowy obszar gry składa się z płytki
#11
(pojedynczej płytki). - Rozszerzony obszar gry utworzony jako wyjście musi być również obsługiwany jako wejście.
- Początkowy obszar gry składa się z płytki
Kafelek do umieszczenia.
- Wszystkie przykładowe kafelki muszą być obsługiwane jako dane wejściowe.
Określ pasujące krawędzie / ciągły teren, używając samych danych obrazu. Bez kodowania.
Wydajność
- Wyjście to obraz przedstawiający wynikowy obszar gry po umieszczeniu kafelka.
- Obraz musi być zgodny z twoim programem, tzn. Może być wykorzystany jako wejście do obszaru odtwarzania.
- Jeśli nie można umieścić kafelka, zwróć błąd.
Możesz to założyć
- Płytki mają zawsze rozmiar 55 na 55 pikseli
- Płytki będą zawsze miały kolory aktualnie używane w przykładowych kafelkach.
Notatki
- Twoja odpowiedź musi zawierać przykładowe wyniki po co najmniej 2 przejściach (zachęca się więcej).
- Jest to częściowe i niedokładne odwzorowanie oryginalnej gry planszowej, nie musisz stosować żadnych zasad i taktyk, które nie zostały tu wymienione.
Wynik
- Twój wynik to liczba bajtów przesłanych danych.
- Dane obrazu nie są uwzględniane w twoim wyniku.
- Najniższy wynik wygrywa.
Granie w pełną grę
Możesz napisać skrypt, który użyje twojego przesłania, aby zagrać w pełną grę, która może składać się z:
- Umieszczanie kafelka wybranego pseudolosowo z pełnego zestawu 85.
- Zwracanie kafelka do zestawu, jeśli nie można go umieścić.
- Powtarzanie do momentu umieszczenia każdego kafelka lub do momentu, gdy nie będzie można umieścić dwóch płytek z rzędu.
Nie zostanie uwzględniony w twojej liczbie bajtów ani nie poprawi twojego wyniku, ale prawdopodobnie zaoferuję nagrodę za tego rodzaju odpowiedź.