Errata
Na página 8 do enunciado, na definição da função jogador-minimax-vbest deverá estar:
jogador-minimax-vbest: jogo x inteiro x inteiro --> acção
Ou seja, esta função recebe um jogo e não um problema, e só devolve uma acção. Os argumentos recebidos devem ser os mesmos para todos os jogadores que venham a ser implementados.
Foi adicionada uma nova função ao tipo jogo que terá de ser implementada.
- jogo-jogadas-jogador: jogo à inteiro
Este selector recebe um jogo e retorna um inteiro (1 ou 2) que indica o número de jogadas (ou fios a remover) que o jogador pode fazer.
Esta função irá ser testada nos testes automáticos do sistema Mooshak.
Foi corrigido um bug detectado no ficheiro tipos.lisp, e foram acrescentados dois novos exemplos t11 e t12 que são muito relevantes para testarem as vossas heuristicas. Por isso recomendamos que voltem a fazer download de todos os ficheiros.
Enunciado Projecto
Nesta secção podem fazer download do enunciado do projecto de época especial.
O projecto corresponde a uma variante do projecto feito na época normal. No entanto tenham atenção de que iremos fazer detecção de cópia com todos os projectos da época normal, pelo que não podem copiar o trabalho de otros grupos da época normal (a não ser que reutilizem o código do grupo a que pertenceram na época normal).
Para além do enunciado, vão encontrar 3 ficheiros lisp auxiliares. O ficheiro tipos.lisp contem a implementação dos tipos Posição, Fio, Tabuleiro e Problema especificados no projecto. O ficheiro interface-moedas contem a interface utilizada para desenhar tabuleiros e fazer jogos do Moedas e Fios. Finalmente o ficheiro exemplos.lisp contem 10 exemplos de tabuleiros que podem usar para os vossos testes.
Entrega e avaliação código
A submissão do projecto de IA é feita utilizado o sistema Mooshak. Para poder usar este sistema (e assim submeter o projecto) deverá:
Obter uma password para acesso ao sistema, seguindo as instruções na página: http://gaips.inesc-id.pt:8081/~mooshak/cgi-bin/getpass-ia .
A password ser-lhe-á enviada por e-mail. Se a password não lhe chegar de imediato, aguarde.
Após ter recebido a sua password, efectue o login no sistema através da página: http://gaips.inesc-id.pt/mooshak. Preencha os campos com a informação fornecida no e-mail.
Utilize o botão "Browse..." no campo "Program", seleccione o ficheiro com extensão .lisp contendo todo o código do seu projecto. De seguida clique no botão "Submit" para efectuar a submissão. Aguarde que o sistema processe a sua submissão. Não é necessário submeter os ficheiros de exemplos e de interface.
Importante - antes de submeter deverá remover as chamadas aos ficheiros tipos, exemplos e interface no vosso ficheiro principal:
(load (compile-file "tipos.lisp")) (load (compile-file "interface-moedas.lisp")) e (load (compile-file "exemplos.lisp"))
e substitui-las por
(load "tipos.fas") (load "interface-moedas.fas") e (load "exemplos.fas)
Deverão também remover/comentar qualquer impressão de comentários no ecrâ.
Quando a submissão tiver sido processada, poderá visualizar na tabela o resultado correspondente. Poderá ainda clicar no link com o resultado, para ver o número de testes passados/falhados. Sempre que fizer uma submissão irá receber automáticamente um email com o resultado dos testes efectuados. Se não receber, verifique o spam, pois este tipo de mail são fácilmente classificados como spam.
Para sair do sistema utilize o botão "Logout".
Existem vários testes configurados no sistema. O tempo de execução de cada teste está limitado, bem como a memória utilizada. Só poderá efectuar uma nova submissão pelo menos 10 minutos depois da submissão anterior. Só são permitidas 10 submissões em simultâneo no sistema, pelo que uma submissão poderá ser recusada se este limite fôr excedido. Nesse caso tente mais tarde.
Avaliação
A avaliação do vosso código está dividida em 3 partes.
- A 1.ª parte corresponde à correcta execução das funções pedidas no enunciado, e é avaliada automáticamente pelo sistema Mooshak. Esta parte vale 6 valores da nota final do projecto. Se obtiverem 30 pontos no sistema Mooshak, irão ter os 6 valores. Se obtiverem 10 pontos, irão ter apenas 2 valores.
- A 2.ª parte, irá ser realizada fora do sistema Mooshak, corresponde a avaliar a qualidade do jogador-minimax-vbest colocando-o a jogar contra 10 oponentes diferentes. Para passar cada um dos testes, é necessário empatar ou ganhar ao oponente. Esta avaliação irá ser realizada com a última versão do projecto submetida. Esta parte vale 6 valores da nota final do projecto.
- A 3.ª parte, vale 1 valor da nota final e corresponde à avaliação manual do vosso código, onde factores como paragrafação, nomes, comentários, estilo de programação, etc serão tidos em consideração.
Template Relatório
Nesta secção podem fazer download do template para o relatório do projecto.
O relatório vale 7 valores da nota final do projecto. Portanto esforçem-se para fazer uma relatório minimamente decente.