Apresentamos hoje o último programa do Tutorial do Concurso.
Desta vez é um jogo inspirado no JIM (1983). Ambos os jogos usam um tabuleiro de nove casas e ambos os jogos aprendem com a experiência.
O objectivo é o exército azul conquistar o castelo ou o exército vermelho tomar o campo dos invasores.
Certo dia, o Zé Oliveira estava a jogar este jogo com o David Magalhães e verificou que não conseguia ganhar. Estão, o Zé Oliveira teve a ideia de fazer um programa que aprendesse com a experiência para conseguir vencer o David. O Zé Oliveira colocou então o TIM a jogar contra o David. No início o David ganhava sempre. Mas o TIM aprendia com cada jogada até que agora o David já não consegue ganhar.
Então, o David perguntou: Quem é o maluco que vai querer jogar contra um programa que nunca perde?
O jogo é disponibilizado com experiência armazenada e em modo "aprendizagem desligada".
O programa aprendeu jogando contra o David mas, provavelmente não é infalível. Para melhorar a performance do programa, ele deve ser executado em modo "aprendizagem ligada" (apenas aconselhável para programadores experientes).
Em modo "aprendizagem desligada", o jogo pode ser jogado à velocidade normal – mas é aconselhável jogar ao dobro da velocidade.
Em modo "aprendizagem ligada", é aconselhável acelerar o emulador quando o programa está a armazenar a experiência de jogo.
São disponibilizados três comandos para quem quiser alterar a experiência armazenada. Um dos comandos serve para limpar a memória. Assim, pode comparar-se a performance do programa com experiência e sem experiência.
Os outros comandos são aconselháveis apenas para programadores experientes.
Este jogo usa uma rotina importante no mundo dos computadores: uma rotina de ordenação de dados. Neste caso, os dados são armazenados numa variável e o índice de ordenação é armazenado noutra variável. Assim, não é necessário mover os dados de um lado para o outro para manter a lista ordenada - basta ordenar o índice. E o índice é ordenado de maneira simples: para inserir o novo item no índice, primeiro movem-se todos os valores superiores para a direita e no fim insere-se o novo valor no local devido. Além disso, a pesquisa é binária: para encontrar um item entre 1000, basta examinar dez itens.
Convidamos os leitores a examinar a listagem e a fazer alterações no programa. Todos os programas BASIC Apascalado que apresentamos nesta série podem ser melhorados e todos os leitores estão convidados a melhorá-los.
Para ler as listagens é mais fácil aqui.
Para fazer download dos ficheiros, clicar aqui.
Para correr o programa online, clicar aqui.
Quem estiver interessado em participar no concurso, pode ler o regulamento aqui.
Sem comentários:
Enviar um comentário