introduzione
Morris di Nine Mens (chiamato anche Mills) è un gioco da tavolo per due giocatori che si gioca sul seguente tabellone (immagine tratta dalla pagina Wikipedia collegata):
Ogni giocatore ha 9 uomini, colorati in bianco e nero. Le regole concrete non sono importanti per questa sfida, ma dai un'occhiata alla pagina di Wikipedia se sei interessato.
La sfida
Data una griglia come input, che rappresenta una certa boardstate, uscita il conteggio totale mulino m
con 0<=m<=8
.
Tre uomini dello stesso colore formano un mulino quando si trovano in una fila diritta di punti collegati. b2
a f2
non è un mulino poiché gli uomini sono di colore diverso. Anche d2
per d5
non formerebbe un mulino poiché i tre punti devono essere collegati.
La scheda nell'immagine sopra contiene due mulini, ad esempio. Uno da f2
a f6
e uno da e3
a e5
.
Ingresso
La scheda è rappresentata come una griglia 2D con 24 punti che sono collegati come mostrato nell'immagine di esempio sopra. L'esempio utilizza lettere di a-g
per le colonne e numeri di 1-7
per le righe, ma è possibile scegliere qualsiasi formato di input ragionevole purché associ 24 coordinate univoche a uno dei seguenti stati:
- Vuoto
- Preso dal nero
- Preso dal bianco
Il riconoscimento concreto spetta a te non sei limitato a "b" o "w" per i colori.
Oltre a ciò, il tuo input potrebbe non contenere ulteriori informazioni.
Note aggiuntive
- Non è necessario mappare i punti con nessun tipo di valore. Se vuoi prendere l'input come un array 2D, va bene lo stesso. Ma tieni presente che non tutti i punti presenti vengono utilizzati e che devi considerare le connessioni tra di loro.
- L'ingresso potrebbe essere vuoto, nel qual caso è necessario produrre zero (scheda vuota -> nessun mulino).
- Poiché ogni giocatore ha 9 uomini, l'input non conterrà mai più di 18 punti presi.
- È possibile tralasciare punti vuoti nell'input e quindi solo punti di input presi.
- L'ingresso può essere ordinato in qualsiasi modo. Non puoi fare affidamento su un ordine specifico.
- Si può presumere che l'input sarà sempre valido. Ciò significa che non ci saranno più di 9 uomini di ogni colore e che ogni punto sarà unico.
Regole
- Chiarisci quale formato di input usi nella tua soluzione. Fornire un esempio di esecuzione del programma è fortemente incoraggiato.
- Funzione o programma completo consentiti.
- Regole predefinite per input / output.
- Si applicano scappatoie standard .
- Questo è code-golf , quindi vince il conteggio dei byte più basso. Tiebreaker è una presentazione precedente.
Casi test
Il formato di input qui è un elenco di tuple con le coordinate come nell'esempio sopra come primo elemento e lo stato del secondo elemento punto. Un punto preso dal bianco è contrassegnato come "w" e un punto preso dal nero come "b". Tutti gli altri punti vengono esclusi e sono vuoti.
[( "A4", "w"), ( "B2", "b"), ( "b4", "b"), ( "C4", "b"), ( "d1", "w") , ( "D2", "w"), ( "E3", "w"), ( "E4", "w"), ( "e5", "w"), ( "F2", "b") , ("f4", "b"), ("f6", "b"), ("g4", "w")] -> 2 [( "A1", "b"), ( "a4", "b"), ( "A7", "b"), ( "b4", "b"), ( "c4", "b") , ("d3", "w"), ("d2", "w"), ("d1", "w")] -> 3 [] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", w")] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", b")] -> 1 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b2", "b"), ("b4", "b") , ("b6", "b"), ("c3", "b"), ("c4", "b"), ("c5", "b"), ("e3", "w") , ("e4", "w"), ("e5", "w"), ("f2", "w"), ("f4", "w"), ("f6", "w") , ("g1", "w"), ("g4", "w"), ("g7", "w")] -> 8
Buona programmazione!
d3
e d5
non sono collegati. Regole dicono: Three men of the same color form a mill when they are in a straight row of connected points.
. Ho aggiunto alcuni esempi in questa sezione per chiarire, grazie per il commento!