Su desafío hoy es tomar aportaciones como esta:
fbcfbee
ffcabbe
debceec
bccabbe
edcfbcd
daeaafc
eebcbeb
Y produzca el mejor movimiento posible en un juego tipo Bejeweled que coincidirá con tres o más letras, como esta (tenga en cuenta la capital B
y C
):
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
Especificaciones completas:
- La entrada será
n
líneas den
letras minúsculas cada una (donden
podría haber cualquier número). - La salida será el mejor movimiento que podrías hacer en un juego de combinar 3, con las dos letras que deseas intercambiar en mayúscula.
Las coincidencias deben tener la siguiente prioridad (en estos ejemplos,
.
indica un cuadrado que no importa):Cinco en una fila
xxYxx ..X..
Roto cinco en una fila
X.. Yxx x.. x..
o
.X. xYx .x. .x.
Cuatro en fila
xYxx .X..
Tres consecutivos
xYx .X.
Debe encontrar la coincidencia de la prioridad más alta y generarla.
- Si hay varias coincidencias con la misma prioridad, puede generar cualquiera de ellas.
- Siempre habrá al menos una coincidencia (su programa puede interrumpirse si no hay coincidencias o hacer lo que quiera).
- La E / S puede estar en cualquier formato razonable (stdin / out, lectura y escritura de archivos, argumentos de función / valores de retorno, cuadros de diálogo, etc.) pero NO codificado (como
x="[insert input here]"
). - Este es el código de golf, por lo que el código más corto en bytes gana. Si utiliza algún acceso a la red por algún motivo, todos los bytes descargados de la red cuentan para su puntaje.
1
+1, pero protesto por el título; podría haber un mejor movimiento. Por ejemplo, uno que crea dos cinco, o uno que causa una caída para crear más cosas.
—
Justin
¿El cinco en raya roto también cubre
—
Peter Taylor
..x.\nxxYX\n..x.
?
@ Peter Sí, lo hace.
—
Pomo de la puerta
Hay 2 patrones rotos de 5 en fila: el patrón L y el patrón T. ¿Requiere que ambos coincidan?
—
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
@nhahtdh Sí, editaré para aclarar eso.
—
Pomo de la puerta