Il gioco da tavolo
Nel gioco da tavolo " Carcassonne " i giocatori piazzano le tessere abbinando i loro bordi e guadagnano i punteggi più alti creando grandi aree contigue di terreno. Di seguito sono (approssimativamente) i tipi e le quantità di tessere incluse nel gioco:
#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
L'obiettivo
È necessario posizionare una tessera abbinando i bordi, mentre si cerca di mantenere le aree contigue più ampie possibili del terreno.
Posizionamento
- Le tessere possono essere posizionate solo in uno degli (fino a 4) spazi vuoti adiacenti a qualsiasi tessera (o tessere) esistente nell'area di gioco.
- Le piastrelle possono essere ruotate di 90, 180 o 270 gradi.
Bordo-matching
- I bordi di una tessera posizionata devono corrispondere ai bordi a contatto delle (fino a 4) tessere vicine, ovvero i pixel a contatto sono dello stesso colore.
Terreno contiguo
- "Chiusura di un'area del terreno" si riferisce al posizionamento di una tessera in modo tale che qualsiasi area contigua di colore non possa quindi essere proseguita con ulteriori posizionamenti delle tessere.
- Se è possibile un posizionamento alternativo, deve essere scelto su qualsiasi posizionamento di piastrelle che chiuderebbe un'area di terreno.
- Se devi scegliere tra un numero di posizionamenti di chiusura, scegli uno qualsiasi. Se devi scegliere tra un numero di posizionamenti non chiusi, scegli uno qualsiasi.
- Ignora # ff00ff (i pixel degli angoli) durante il calcolo di aree contigue. Ignorare anche gli edifici, ovvero le aree di colore già completamente racchiuse in una piastrella.
Ingresso
L'input è di due immagini:
L'area giochi.
- L'area di gioco iniziale è composta da una tessera
#11
(una singola tessera). - Anche l'area di gioco aumentata creata come output deve essere supportata come input.
- L'area di gioco iniziale è composta da una tessera
La tessera da posizionare.
- Tutti i riquadri di esempio devono essere supportati come input.
Determinare i bordi corrispondenti / terreno contiguo usando questi dati immagine da solo. Nessun hardcoding.
Produzione
- L'output è un'immagine che mostra l'area di gioco risultante dopo aver posizionato la tessera.
- L'immagine deve essere compatibile con il proprio programma, ovvero può essere utilizzata come input dell'area di gioco.
- Se è impossibile posizionare una tessera, restituire un errore.
Puoi presumere che
- Le piastrelle sono sempre 55 px per 55 px
- Le tessere presenteranno sempre e solo i colori attualmente utilizzati nelle tessere di esempio.
Gli appunti
- La tua risposta deve presentare un esempio di output dopo almeno 2 passaggi (ne viene incoraggiato un numero maggiore).
- Questo è un rendering parziale e impreciso del gioco da tavolo originale, non è necessario applicare nessuna delle regole o tattiche non menzionate qui.
Punto
- Il tuo punteggio è il conteggio dei byte del tuo invio.
- I dati delle immagini non sono inclusi nel tuo punteggio.
- Il punteggio più basso vince.
Fare un gioco completo
Potresti scrivere una sceneggiatura che utilizza la tua sottomissione per giocare a un gioco completo, che potrebbe consistere in:
- Posizionamento di una tessera scelta in modo pseudocasuale dall'insieme completo di 85.
- Restituisce la tessera sul set se non può essere posizionata.
- Ripetizione fino a quando non è stata posizionata ogni tessera o fino a quando non è possibile posizionare due tessere di fila.
Non sarà incluso nel conteggio dei byte, né migliorerà il tuo punteggio, ma probabilmente offrirò una generosità a questo tipo di risposta.