sexta-feira, 11 de março de 2022

Tutorial do Concurso #3: Tabuada

Apresentamos hoje mais um pequeno jogo escrito em BASIC Apascalado para familiarizar os concorrentes com esta técnica insólita de programar no ZX Spectrum. Os jogos vão ser todos escritos em inglês para benefício dos concorrentes estrangeiros.

O jogo de hoje é uma versão dum jogo de 1982 para o ZX81. Este jogo teve uma versão para o ZX Spectrum na colectânea "No Tempo do ZX81" que incluía 4 jogos do ZX81.

Para programar em BASIC Apascalado, a técnica consiste em descrever o programa inteiro em meia dúzia de passos e depois pegar em cada um desses passos e fazer outra vez a descrição em mais meia dúzia de passos e por aí adiante. 

Por exemplo, neste caso, começa-se por descrever o programa assim: colocar 10 questões, corrigir o teste e repetir os passos anteriores até o utilizador acertar a maior parte.

Em BASIC Apascalado fica:

REPEAT i

   PROC Colocar10questoes

   PROC CorrigirTeste

UNTIL BoaNota

Depois faz-se o mesmo com "Colocar10questoes" e "CorrigirTeste" 

("BoaNota" pode ser uma variável calculada por "CorrigirTeste").

O ciclo REPEAT usa a variável "i". Isto não é usado nas linguagens modernas mas é aqui necessário porque o ciclo REPEAT vai ser convertido num ciclo FOR. Isto não é tão bizarro como parece porque o Sinclair QL também precisava duma variável no ciclo REPEAT. Como o Spectrum não tem variáveis locais é preciso ter cuidado com os nomes das variáveis porque não se pode usar a mesma variável em vários ciclos ao mesmo tempo - isto é fácil de acontecer quando se invoca uma rotina dentro de outra rotina.

Para jogar online, podem aqui vir.

Para ler as 2 listagens é mais fácil visualizar aqui.

Para fazer download dos 3 ficheiros, podem aqui vir.

Quem estiver interessado em participar no concurso, pode ler o regulamento aqui.

Sem comentários:

Enviar um comentário