Agora é a vez da versão para MSX-BASIC d’O desafio dos monstros ou, mais precisamente, uma versão específica para este dialeto de BASIC já que o programa do livro trata-se de uma versão “genérica”.
A versão em MSX-BASIC
Assim como a versão em Python as únicas adições também foram o uso de cores de fundo distintas para separar as partes do jogo — azul para monstro, vermelho para pânico e preto para indicar o final — e a mais que providencial correção do valor digitado através da tecla «Backspace».
Algumas considerações (sempre há o que se considerar):
- Assim como na versão em Python, esta versão também está em inglês, faz referência ao livro da Usborne e URL onde é possível baixá-lo;
- A estrutura é mais parecida com a versão em Python do que com o programa original — é bem verdade que o programa do livro é bem doido;
- As variáveis numéricas foram declaradas de acordo com o uso, assim as variáveis que terminam com “#” são inteiros e com “!” de ponto flutuante;
- Apenas os comandos COLOR, LOCATE, SCREEN e WIDTH e as funções CSRLIN, INPUT$, INSTR e TIME são “específicos” do MSX-BASIC, todo o resto é BASIC “padrão” e
- Em computadores MSX operando em em 50Hz o valor da variável T% (linha 155) deve ser alterado para 50.
A versão específica para MSX-BASIC também ficou maior que a versão “genérica” somando mais de 5KiB contra os 1.5KiB porém com um número menor de linhas de código. E foi colocada no mesmo repositório que a versão em Python.
E para terminar…
Um detalhe, lendo com calma minha edição do “Programas de jogos de terror” notei que a lista de computadores é ainda maior que imaginava pois aquilo que o livro chama por ZX Spectrum também engloba o ZX-81.
E para terminar três (sub)desafios:
- Especificamente na versão para MSX, que tal tornar a detecção da frequência de operação automática? Se o 7º bit do endereço de memória 0x002B, é 0 o MSX opera a 60Hz, senão opera a 50Hz. E que tal fazê-lo sem recorrer a um “IF … THEN … ELSE”?
- Em ambas as versões há um tempo limite para a entrada das respostas¹ mas permitir a seleção do grau de dificuldade? Ou mesmo um mostrador para indicar quanto tempo resta para a resposta?
- Ou que tal criar uma interface completamente diferente, algo mais visual e bem menos numérica?
(¹) Alguns até poderiam considerar que este tempo poderia ser um pouco maior.
Pingback: Repórter Retro Nº 031 | Retrocomputaria