Lógica em puzzles

4 respostas
J

Olá, é meu primeiro post no fórum, não sei se esse é o lugar certo mas era a única parte do fórum que citava ‘problemas com lógica’, caso não seja aqui, informem-me.

Tenho uma dúvida de lógica. Tenho jogado um puzzle para celular chamado Flow. As regras são simples, você tem pares de pontos separados em um campo quadriculado e tem que “ligar” eles dois a dois, até que todos estejam ligados e o campo esteja completamente preenchido.

Aqui tem um exemplo de uma fase solucionada, caso restem dúvidas quanto às regras.

E a imagem de uma fase ainda não solucionada, o estado inicial.

Minhas dúvidas são as seguintes:

1 - É possível fazer um algoritmo que resolva esse puzzle sem fazer uma busca por soluções? (apenas por lógica)

Faço essa pergunta porque depois de um pouco de prática comecei a pensar em soluções sem fazer tentativas antes, parece ser possível só determinar um movimento obrigatório sem fazer uma busca olhando o contexto global.

2 - Como os desenvolvedores desenvolvem as fases desse tipo de jogo?

Nunca tive contato com desenvolvimento de puzzles mas sempre tive curiosidade de como se estima a complexidade de uma fase na hora do desenvolvimento, já que existem vários níveis de dificuldade. As fases são geradas aleatoriamente e depois classificadas por nível ou existe um padrão que faça a fase ter tal nível de complexidade?

3 - Como se estima a complexidade de um puzzle no geral?

Ao se idealizar um jogo, há premissas que tornem possível aferir a complexidade do jogo? Há algum ponto de partida para estudar esse tipo de problema?

Todos os comentários acerca de lógica em jogos de puzzle são bem vindos, e caso achem que esse post se encaixaria melhor em alguma outra seção ou até algum outro fórum, avisem que eu mudo :slight_smile:
Obrigado.

4 Respostas

J

Ninguém?

A

Eu não conheço muito sobre jogos, então não posso te dar respostas concretas.

Acredito que talvez seja possível criar tal algoritmo, mas seria específico pra esse jogo e não para qualquer tipo de puzzle.

De qualquer forma, dá uma olhada nesse artigo: http://norvig.com/sudoku.html

Apesar de ser sobre sudoku, talvez as técnicas apresentadas lá sejam genéricas o suficiente pra qualquer tipo de jogo do tipo.

B

Nota: Eu não estudo sobre jogos ou algoritmos para encontrar de caminhos(pathfinding) e transversamento de grafos. Tudo daqui para baixo é intuição/achismo.

  1. Para esse tipo de jogo acho que solução é realmente força bruta, com algumas heurísticas para fazer essa busca mais rápida, por ex. abortar uma solução no meio do caminho caso for detectado que não há caminhos entre outros pontos. Dê uma olhada no grafico do primeiro exemplo já solucionado, dá para tirar algumas heurísticas resolvendo o problema da direita para a esquerda.

  2. Eu diria que as fases são desenvolvidas primeiro colocando os pontos de forma aleatória no jogo, passando por alguma validação básica para evitar soluções impossíveis. como pontos sem saída. Depois passa pelo algoritmo de busca descrito no ponto 1. para validar se a solução é possível.

  3. Poderia estimar isso baseado no tempo que o algoritmo de pesquisa demora para encontrar uma solução.

ViniGodoy

Também acho que aí é só por força bruta. Para não fazer força bruta pura e simples, dá uma olhada nos algoritmos de busca estocástica, como os algoritmos genéticos.

Criado 15 de março de 2013
Ultima resposta 17 de mar. de 2013
Respostas 4
Participantes 4