Sou obrigado a usar tabuleiros?

Não. A representação do tipo de dados mundo é totalmente deixada ao critério dos alunos. De facto, existem soluções bastante elegantes para o problema que não recorrem ao uso de tabuleiros.

Existe alguma versão do Scheme na qual eu devo resolver o meu projecto?

Infelizmente as diferentes versões do Scheme não são 100% compatíveis e por isso projectos desenvolvidos numa versão podem não funcionar na versão onde os testes vão ser efectuados.

Apesar de a versão oficial da cadeira ser a 3.52, também serão aceites trabalhos desenvolvidos na versão disponível nos laboratórios, 2.99. Ao submeter o projecto os alunos deverão indicar de forma explícita em que versão é que desenvolveram o projecto. Devem assegurar-se que todo o projecto funciona nessa mesma versão. Não serão aceites trabalhos em que diferentes módulos funcionem em diferentes versões do Scheme.

Quando tento usar nos laboratórios os .zo disponibilizados na página obtenho uma mensagem de erro. Que faço?

Os ficheiros .zo são compilados para uma versão concreta de Scheme. Na página são disponibilizados os ficheiros xpto-352.zo e xpto-299-100.zo que correspondem às versões de Scheme 352 e 299.100. Verifique se se está a usar o ficheiro correcto.

Fiz download do módulo correcto para a minha versão de Scheme mas continuo a obter um erro. Que faço?

Depois de fazer download do ficheiro xpto-versao.zo, deverão renomeá-lo para xpto.zo.

Como é que crio um ficheiro .zo?

Para criar um ficheiro .zo devem abrir uma janela de comando no directório onde estão os ficheiros do projecto e escrever "c:\caminho-onde-esta-drscheme\mzc.exe -z ficheiro-a-compilar.scm"

Para que servem os ficheiros .zo? Preciso deles no meu projecto?

Não. Não é necessário ter os ficheiros .zo para que o projecto funcione (excepto interface.zo e strings.zo). Os ficheiros .zo são, apenas, versões optimizadas dos ficheiros .scm. Estes poderão ser úteis numa fase final do projecto, tal como a fase de testes.

Tenho o ficheiro modulo.zo e apaguei acidentalmente o ficheiro modulo.scm. Posso obter de novo o ficheiro modulo.scm?

Não. Não é possível gerar o ficheiro original a partir de modulo.zo. A única solução é reescrever o ficheiro modulo.scm.

A interface gráfica pode ser carregada mesmo sem termos definido todos os TAI's e-ou procedimentos?

Sim. A interface é completamente independente dos outros ficheiros do projecto. Para usar a interface só é necessário fornecer uma string na forma indicada na Secção 2.4 do enunciado.

Claro que para gerar uma representação externa do teu mundo, tens de ter definido o TAI mundo, mas isso em nada tem a ver com a interface.

O procedimento linha? que nos foi fornecido através do módulo tabuleiro.zo não deveria receber apenas um argumento?

O procedimento definido no TPC3 recebia um argumento e retornava #t caso este fosse uma linha. Lendo com atenção a informação sobre o módulo tabuleiro.zo vemos que "... As funções linha? e tabuleiro? recebem um predicado e um objecto e retornam true se e só se todos os elementos da linha, respectivamente todos os elementos do tabuleiro, satisfazem o predicado..."