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 Be C):
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
Especificações completas:
- A entrada será
ncomposta por linhas denletras minúsculas cada (ondenpode 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