La tua sfida oggi è quella di prendere input in questo modo:
fbcfbee
ffcabbe
debceec
bccabbe
edcfbcd
daeaafc
eebcbeb
Ed emetti la migliore mossa possibile in un gioco simile a Bejeweled che corrisponderà a tre o più lettere, come questa (nota la maiuscola B
e C
):
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
Specifiche complete:
- L'input sarà costituito da
n
righe din
lettere minuscole ciascuna (doven
potrebbe esserci un numero qualsiasi). - L'output sarà la mossa migliore che potresti fare in un gioco match-3, con le due lettere che vuoi scambiare in maiuscolo.
Le partite dovrebbero avere la seguente priorità (in questi esempi,
.
indica un quadrato che non ha importanza):Cinque in-un-fila
xxYxx ..X..
Rotto cinque di fila
X.. Yxx x.. x..
o
.X. xYx .x. .x.
Four-in-un-fila
xYxx .X..
Tre-in-un-fila
xYx .X.
È necessario trovare la corrispondenza con la massima priorità e produrla.
- Se sono presenti più corrispondenze con la stessa priorità, è possibile emetterne una qualsiasi.
- Ci sarà sempre almeno una partita (il tuo programma può interrompersi se non ci sono partite o fare tutto quello che vuoi).
- L'I / O può essere in qualsiasi formato ragionevole (stdin / out, lettura e scrittura di file, argomenti di funzioni / valori di ritorno, finestre di dialogo, ecc.) Ma NON codificato (come
x="[insert input here]"
). - Questo è code-golf, quindi vince il codice più breve in byte. Se si utilizza l'accesso alla rete per qualche motivo, tutti i byte scaricati dalla rete vengono conteggiati rispetto al punteggio.
..x.\nxxYX\n..x.
?