Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

accoes: estado → lista de acções #25

Closed
sikrew opened this issue Oct 13, 2015 · 0 comments
Closed

accoes: estado → lista de acções #25

sikrew opened this issue Oct 13, 2015 · 0 comments
Labels
Milestone

Comments

@sikrew
Copy link
Collaborator

sikrew commented Oct 13, 2015

Esta função recebe um estado e devolve uma lista de acções correspondendo a todas as acções
válidas que podem ser feitas com a próxima peça a ser colocada. Uma acção é considerada
válida mesmo que faça o jogador perder o jogo (i.e. preencher a linha do topo). Uma acção é
inválida se não for fisicamente possível dentro dos limites laterais do jogo 78. Por exemplo colocar a peça i deitada na última coluna do tabuleiro, ou tentar colocar a peça s com a
orientação inicial na coluna 89, tal como se pode ver na imagem seguinte.

figura4

A ordem com que são devolvidas as acções na lista é muito importante. À frente da lista devem estar obrigatoriamente as acções correspondentes à orientação inicial da peça, percorrendo todas as colunas possíveis da esquerda para a direita. Depois é escolhida uma nova orientação, rodando a peça 90º no sentido horário, e volta-se a gerar para todas as colunas possíveis da esquerda para a direita. No entanto, se ao rodar uma peça obter uma configuração geométrica já explorada anteriormente (como por exemplo no caso da peça O em que todas as rotações correspondem à mesma configuração) não devem ser geradas novamente as acções*

Task of: #23 Funções do problema de procura

* As constantes definidas no ficheiro utils.lisp já estão ordenadas por esta ordem de rotação, pelo que basta por exemplo no caso da peça t gerarem as colunas possíveis para as peças:peca-t0,peca-t1,peca-t2,peca-t3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants