Bejeweled Blitz - Como afirma que sempre há um movimento?
-
25-09-2019 - |
Pergunta
Eu tenho jogado Blitz Beweweled há algum tempo. Sim, é um vício. Ao pensar no jogo, observei que, em algumas pranchas, o fundo fica seco (sem movimentos) deixando apenas a parte superior da placa jogável. Freqüentemente, a parte da placa se eleva e fica com movimentos em área limpa pelo último movimento.
A placa nunca é completamente seca, então claramente o programa está fazendo algum tipo de cálculo que permite escolher o que cair para impedir que ele seca.
Eu notei neste 'modo' que é muito comum o algoritmo soltar jóias, o que faz com que mais área não seque apareça na área horizontal. Talvez menos frequente seja uma queda que parece projetada para abrir a parte inferior da placa novamente.
Então minha pergunta é "Como alguém projetaria um algoritmo garantem que sempre haja um movimento disponível."
Solução
Eu escrevi um jogo de três na linha há um tempo e a maneira como lidei com esse problema é selecionar Gems para cair aleatoriamente e contar todos os movimentos válidos. Se as gemas selecionadas não forneçam pelo menos 1 movimento válido, selecionaria outro conjunto de gemas e assim por diante.
Outras dicas
Isso é solucionável explorando o espaço de possíveis "gotas de jóias" e você aplica uma classificação com base nas suas regras que pediu. A classificação mais alta pode significar que segue a regra e as classificações baixas significam que você não segue, então você escolhe um slot com a classificação mais alta.
Isso não é fácil de explicar, mas uma abordagem baseada em regras deve fazer o truque.