You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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*
* 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
The text was updated successfully, but these errors were encountered:
Esta função recebe um
estado
e devolve uma lista de acções correspondendo a todas as acçõesvá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.
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
The text was updated successfully, but these errors were encountered: