Le jeu de plateau
Dans le jeu de société " Carcassonne ", les joueurs placent des tuiles en faisant correspondre leurs bords et gagnent les meilleurs scores en créant de grandes zones de terrain contiguës. Voici (grosso modo) les types et quantités de tuiles incluses dans le jeu:
#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
La tâche
Vous devez placer une tuile en faisant correspondre les bords, tout en essayant de conserver les plus grandes zones de terrain contiguës possibles.
Placement
- Les tuiles ne peuvent être placées que dans l'un des (jusqu'à 4) espaces vides adjacents à toute tuile (ou tuiles) existante dans la zone de jeu.
- Les carreaux peuvent être tournés de 90, 180 ou 270 degrés.
Correspondance des bords
- Les bords d'une tuile placée doivent correspondre aux bords en contact des (jusqu'à 4) tuiles voisines, c'est-à-dire que les pixels en contact sont de la même couleur.
Terrain contigu
- La «fermeture d'une zone de terrain» fait référence au placement d'une tuile de telle sorte qu'aucune zone de couleur contiguë ne puisse ensuite être poursuivie avec d'autres placements de tuiles.
- Si un placement alternatif est possible, il doit être choisi par rapport à tout placement de tuiles qui fermerait une zone de terrain.
- Si vous devez choisir entre plusieurs emplacements de clôture, choisissez-en un. Si vous devez choisir entre plusieurs emplacements non fermés, choisissez-en un.
- Ignorez # ff00ff (les pixels d'angle) lors du calcul des zones contiguës. Ne tenez pas compte non plus des bâtiments, c'est-à-dire des zones de couleur déjà entièrement enfermées dans une tuile.
Contribution
L'entrée est deux images:
L'aire de jeux.
- La zone de jeu initiale est constituée de tuiles
#11
(une seule tuile). - La zone de lecture augmentée créée en sortie doit également être prise en charge en entrée.
- La zone de jeu initiale est constituée de tuiles
La tuile à placer.
- Tous les exemples de tuiles doivent être pris en charge en entrée.
Déterminez les bords / terrains contigus correspondants en utilisant uniquement ces données d'image. Pas de codage en dur.
Sortie
- La sortie est une image montrant la zone de jeu résultante après avoir placé la tuile.
- L'image doit être compatible avec votre propre programme, c'est-à-dire qu'elle peut être utilisée comme entrée de zone de lecture.
- S'il est impossible de placer une tuile, retournez une erreur.
Vous pouvez supposer que
- Les tuiles mesurent toujours 55 px par 55 px
- Les tuiles ne comporteront que les couleurs actuellement utilisées dans les tuiles d'exemple.
Remarques
- Votre réponse doit comporter un exemple de sortie après au moins 2 passages (plus est encouragé).
- Il s'agit d'un rendu partiel et inexact du jeu de société d'origine, vous n'avez pas besoin d'appliquer les règles ou tactiques non mentionnées ici.
But
- Votre score est le nombre d'octets de votre soumission.
- Les données d'image ne sont pas incluses dans votre score.
- Le score le plus bas l'emporte.
Jouer à un jeu complet
Vous voudrez peut-être écrire un script qui utilise votre soumission pour jouer à un jeu complet, qui pourrait consister en:
- Placer une tuile choisie de manière pseudo-aléatoire parmi l'ensemble complet de 85.
- Rendre la tuile à l'ensemble si elle ne peut pas être placée.
- Répéter jusqu'à ce que chaque tuile ait été placée - ou jusqu'à ce que deux tuiles d'affilée ne puissent pas être placées.
Il ne sera pas inclus dans votre nombre d'octets, ou améliorera votre score, mais je proposerai probablement une prime à ce type de réponse.