Seu desafio hoje é receber contribuições como esta:
fbcfbee
ffcabbe
debceec
bccabbe
edcfbcd
daeaafc
eebcbeb
E produza a melhor jogada possível em um jogo parecido com Bejeweled que corresponderá a três ou mais letras, como esta (observe a capital B
e C
):
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
Especificações completas:
- A entrada será
n
composta por linhas den
letras minúsculas cada (onden
pode haver qualquer número). - A saída será a melhor jogada que você poderia fazer em um jogo de combinação 3, com as duas letras que você deseja trocar em maiúsculas.
As correspondências devem ter a seguinte prioridade (nesses exemplos,
.
indica um quadrado que não importa):Cinco em linha
xxYxx ..X..
Cinco em linha quebrada
X.. Yxx x.. x..
ou
.X. xYx .x. .x.
Quatro em linha
xYxx .X..
Três em linha
xYx .X.
Você deve encontrar a correspondência da prioridade mais alta e produzi-la.
- Se houver várias correspondências da mesma prioridade, você poderá produzir qualquer uma delas.
- Sempre haverá pelo menos uma correspondência (seu programa pode interromper se não houver correspondências ou fazer o que você quiser).
- A E / S pode estar em qualquer formato razoável (stdin / out, arquivos de leitura e gravação, argumentos de função / valores de retorno, caixas de diálogo etc.), mas NÃO codificado (como
x="[insert input here]"
). - Este é o código-golfe, pelo que o código mais curto em bytes vence. Se você usar algum acesso à rede por algum motivo, todos os bytes baixados da rede serão contabilizados na sua pontuação.
1
+1, mas eu protesto o título; poderia haver uma jogada melhor. Por exemplo, um que cria dois cincos ou um que causa uma queda para criar mais coisas.
—
Justin Justin
A quebra de cinco em linha também cobre
—
Peter Taylor
..x.\nxxYX\n..x.
?
@ Peter Sim, ele faz.
—
Maçaneta
Existem 2 padrões quebrados de 5 em linha: o padrão L e o padrão T. Você precisa que ambos sejam correspondidos?
—
precisa saber é o seguinte
@ nhahtdh Sim, vou editar para esclarecer isso.
—
Maçaneta