Abaixo encontram-se as explicações sobre o programa.
_____ _____ _____ _____ _____ _____ _____ _____ | | | | | | | | | 8 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 7 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 6 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 5 | | | | A | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 4 | | | | | | | B | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 3 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 2 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 1 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| 1 2 3 4 5 6 7 8As casas serão representadas por listas de dois átomos numéricos da forma (l c) , onde l é a linha e c é a coluna. Por exemplo, as posições marcadas no tabuleiro acima são A = (5 4) e B = (5 7).
_____ _____ _____ _____ _____ _____ _____ _____ | | | | | | | | | 8 | B | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 7 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 6 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 5 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 4 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 3 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 2 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 1 | | | | | | | P | P P | |_____|_____|_____|_____|_____|_____|_____|_____| 1 2 3 4 5 6 7 8Joga um jogador de cada vez. Não é permitido "passar" a vez. O Branco sempre começa. O objetivo do branco é "comer" (ou seja, ocupar a casa) do peão preto, e ele tem 30 lances para fazer isso. O objetivo do preto é impedir que o branco coma o peão preto nos primeiros trinta lances. Não há empate.
Os movimentos são como no jogo de xadrez. Os reis andam uma casa
de cada vez, em qualquer direção (vertical, horizontal ou
diagonal). O peão preto não se move. O rei preto
não pode ocupar a mesma casa do seu peão. Os reis não
podem encostar um no outro. Mais formalmente, defina duas casas (l1
c1) e (l2 c2) como sendo adjacentes quando max(|delta-l|, |delta-c|)
= 1, onde delta-l = l1 - l2 e delta-c = c1 - c2. Cada rei só pode
mover-se para uma casa adjacente a que ele esta. E os reis nunca
podem ocupar casas adjacentes.
Branco Preto (7 1) (2 7)
(6 1) (2 6)
(5 2) (3 6)
(4 3) (3 5)
(3 3) (4 5)
(2 4) (3 6)
(1 5) (2 7)
(2 5) (1 7)Nesta posição o preto já está perdido. O branco deve aproximar-se cada vez mais, encurralando o rei preto, que se verá impossibilitado de jogar as melhores defesas por culpa do próprio peão que visa defender. Posição atual:
_____ _____ _____ _____ _____ _____ _____ _____ | | | | | | | | | 8 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 7 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 6 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 5 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 4 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 3 | | | | | | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 2 | | | | | B | | | | |_____|_____|_____|_____|_____|_____|_____|_____| | | | | | | | | | 1 | | | | | | | P | P P | |_____|_____|_____|_____|_____|_____|_____|_____| 1 2 3 4 5 6 7 8
(branco-inicia)Esta função, sem argumentos, deve inicializar o que for necessário e retornar o primeiro lance do branco .
(branco-responde jogada)Esta função recebe um argumento, que reflete a última jogada do preto, e deve retornar a próxima jogada do branco.
(preto-inicia jogada)Esta função recebe um argumento, que foi a primeira jogada do branco. Ela deve inicializar o que for necessário e retornar o primeiro lance do preto.
(preto-responde jogada)Esta função recebe um parâmetro, que reflete a última jogada do branco, e deve retornar a próxima jogada do preto.
Para encaspular seu programa num pacote, inicie código com as seguinte três linhas:
(make-package 'nome) (in-package nome) (lisp::use-package 'lisp)onde
nome
é o seu RA, precedido de "ra". Exemplo: seu
login é 973451, use
ra973451
como nome
.
Neste projeto, o funcionamento mínimo é o seguinte: seu programa não poderá perder mais do que 10% das partidas disputadas por ter feito jogadas inválidas.
Os programas de todos os alunos que entregarem no prazo, ou até dez dias após o prazo, serão colocados num campeonato. Para cada dia de atraso, o aluno perde um ponto na nota. Este campeonato consiste em jogar uns contra os outros e ver quem acumula mais pontos. Os pontos são contados como: 1 para vitória, 0 para derrota (jogada inválida conta como derrota, independentemente da posição).
Os jogadores serão ordenados pelo total de pontos. Os que não fizeram o funcionamento mínimo serão removidos da lista. O primeiro colocado tira 10 (dez). O último colocado fica com 5 (cinco). Os outros terão sua nota calculada por interpolação de seu total de pontos em relação ao interalo [5,10]
Falta decidir que nota dar aos que não cumprirem o funcionamento mínimo. Ainda não estabeleci um critério, mas será alguma nota entre 0 e 5 levando em conta a freqüência com que o programa faz jogadas inválidas.