sexta-feira, 16 de setembro de 2022

Tutorial do Concurso #30 - TIM, o primo do JIM

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