Livro de Jogos em MSX

Aqui está uma coleção de jogos interessantes e divertidos para os computadores da linha MSX. Há programas para todos os gostos: jogos de aventura, como Marie Celeste, baseado na lenda do navio fantasma, jogos clássicos, como Star Trek e Super Breakout, jogos de estratégia, como damas e xadrez, jogos de dados, como Craps, jogos de raciocínio, jogos de fliperama e jogos educativos. O livro inclui também uma série de programas utilitários que ajudarão o leitor a criar desenhos originais na tela e a desenvolver seus próprios programas, além de um mapa da memória e gráficos das coordenadas de tela e para a geração de caracteres. Esta obra se destina a todos os usuários do MSX, desde os principaiantes até programadores experientes.

Todos os jogos foram escritos na Linguagem BASIC e cuidadosamente testados.

livjogos-capa


Prefácio

Artigo Original: Jim Gregory, Digitação: Wilson e William Pilon

Um livro como este só se tornou possível graças à existência do Microsoft Extended Basic ou MSX.

Em virtude da compatibilidade entre os micros MSX, o dono de qualquer micro dessa família poderá carregar os programas deste livro no seu microcomputador e entreter-se com eles.

Os jogos para microcomputador não são apenas divertidos, mas também educativos. Em primeiro lugar, o desejo de ver o jogo "pronto" e funcionando desperta o interesse pelo computador. Em seguida, ao entrar com o programa, o usuário se familiariza com a sintaxe da linguagem em que o programa foi escrito. Além disso, como os programas raramente funcionam da primeira vez, devido a erros de digitação, torna-se necessário acompanhar a lógica do programa e assim descobrir como ele funciona. Os dois últimos estágios na evolução de um programador consistem em modificar programas já existentes e finalmente poder afirmar: "Eu sou capaz de fazer um programa melhor do que este!". Espero sinceramente que, depois de usar este livro, você seja capaz de desenvolver programas em BASIC MSX ainda melhores do que os apresentados aqui.

Entretanto, o objetivo principal desta obra não é ensinar ou explicar. A intenção foi produzir bons programas, que custariam dez vezes o preço do livro se fossem vendidos separadamente em fita cassete. Este é um livro de jogos e trabalhamos arduamente para incluir jogos de vários tipos, que interessassem a todos os leitores.

Infelizmente, embora o BASIC MSX seja uma linguagem rápida e que dispõe de comandos muito convenientes para programar jogos, o BASIC às vezes necessita de um pouquinho de ajuda. Por isso, incluímos pequenas rotinas em linguagem de máquina em alguns programas. Isto não deve ser motivo de preocupação, já que as rotinas são digitadas como parte da listagem. O resultado é um programa híbrido de BASIC e linguagem de máquina que atende ao nosso objetivo principal, ou seja, oferecer ao leitor jogos agradáveis e interessantes.

O desenvolvimento dos programas apresentados neste livro foi um trabalho de equipe que exigiu um grande esforço e dedicação. Tenho a satisfação de registrar meus agradecimentos e apreciação a todos os que trabalharam comigo neste projeto. Aqueles que participaram diretamente na elaboração dos programas, e cujos pseudônimos aparecem nas listagens, são "ISSI", "PAULG", "ANDY" e "BOOTSY".

Os outros membros do grupo foram Janete e minha esposa Val, que se encarregaram da preparação do original através das sucessivas revisões.

Finalmente, meus agradecimentos a Richard Miles, da editora Collins, que encomendou o livro e se encarregou de todas as etapas de sua preparação até chegar a você - a razão final de todo o processo - a pessoa a quem agradeço por comprá-lo.

Jim Gregory

Sobre o Autor

Jim Gregory é Diretor-Gerente da Mr.Micro, uma das maiores software houses da Inglaterra, especializada em jogos para computadores. Já escreveu vários artigos para as revistas Personal Computer World, Leisure and Electronics Trader e Computer and Video Games.


Introdução

Os programas aqui apresentados foram escritos especialmente para este livro, o que resultou em uma série de programas que cobrem todos os tipos de jogos. Esses jogos ilustram muitas técnicas úteis de programação.

Para ajudar a reduzir os erros de digitação, todas as listagens foram impressas com uma largura padrão de 39 colunas. Isso quer dizer que se você usar a SCREEN 0 para carregar os programas, cada linha na tela corresponderá exatamente a uma linha no livro, este é apenas um exemplo do esforço que fizemos para assegurar que todos os programas deste livro funcionem corretamente.

Depois de serem exaustivamente testados, os programas foram listados diretamente a partir da memória do computador. Assim, caso um dos programas não funcione, o mais provável é que o leitor tenha cometido um erro na hora de digitá-lo.

Falando com a experiência de quem já carregou muitos programas a partir de listagens publicadas em livros e revistas, sei que haverá ocasiões em que você será capaz de jurar que copiou o programa corretamente, embora ele não esteja funcionando. Leia com atenção as notas que se seguem e cometerá muito menos erros de digitação. Procure seguir os conselhos à risca e verá que eles lhe pouparão tempo e trabalho.

Alguns Conselhos Úteis

Instale o equipamento sobre uma mesa de tamanho adequado, senten-se em uma cadeira confortável e procure manter as costas retas. Assegure-se de que a iluminação é adequada e coloque o livro em uma posição conveniente para a leitura.

Antes de começar a digitar, certifique-se de que todos os equipamentos estão ligados.

Certifique-se de que dispõe de um suprimento adequado de fitas ou de um disquete formatado.

Se as suas fitas têm um trecho não-magnético no início, prepare-as para a gravação dos programas, fazendo girar o carretel até a parte castanha aparecer.

Para certificar-se de que tudo está em ordem, coloque no gravador uma fita C90, que será sua fita de trabalho, e execute um teste de "salvar e carregar, digitando:

10 REM 'TESTE'

20 PRINT "TUDO BEM"

30 GOTO 10

ou um programa semelhante.

Salve o programa de teste, depois carregue-o e execute-o, entrando com RUN no modo direto. Se o programa funcionar corretamente, não torne a enrolar a fita, continue de onde parou. Se o programa não funcionar, rebobine a fita e começe de novo, verificando com atenção todos os passos. Você então poderá usar esta fita para salvar seu programa, seja quando terminar ou quando quiser interromper a digitação para continuar mais tarde.

Experimetne primeiro usar a maior velocidade de gravação do MSX para verificar se ela é confiável para a combinaçao de computador, gravador e fita que você está utilizando. Caso os resultados não sejam satisfatórios, use a velocidade menor.

Se estiver trabalhando com disquetes, faça um teste semelhante, salvando e tornando a carregar um programa em disquete.

Quando salvar apenas uma parte do programa, use um nome apropriado, como "V1", "V2", etc. Se preferir, use hora e a data em que o programa foi salvo, como por exemplo "8:15-7-1-87".

Depois de salvar um programa, não se esqueça de anotar o nome do programa e o número do contador, assim, poderá localizá-lo rapidamente no futuro.

Não deixe de salvar o programa em fita ou disquete antes de entrar com RUN. O mundo dos micros está cheio de gente apressada que perdeu muitas horas de trabalho porque se esqueceu de tomar esta preocupação elementar.

Existem várias razões pelas quais um programa pode ser perdido enquanto está sendo executado. Apenas para dar alguns exemplos, pode haver um erro de digitação tal que o interpretador execute a instrução NEW, ou pode ser que o programa entre em um loop para o qual não haja saída a não ser desligar o computador. Os programas que utilizam rotinas em linguagem de máquina, instruções POKE ou instruções para o sistema operacional estão particularmente sujeitos a erros irreversíveis.

Depois que o programa estiver funcionando corretamente, é recomendável guardar uma cópia de reserva em uma fita C90, juntamente com outros programas. A cópia principal deve ser guardada em uma fita mais curta, como a C15. Guarde apenas um programa de cada lado da fita, assim, ficará muito mais fácil carregar os programas na memória do computador. Não se esqueça de rotular todas as fitas gravadas.

O objetivo de guardar uma cópia de reserva é evitar a necessidade de digitar novamente todo o programa caso uma das fitas sofra algum tipo de dano.

Se estiver trabalhando com disquetes, tenha sempre um disquete de reserva com as cópias de todos os seus programas definitivos.

Muitos usuários guardam suas fitas sem nenhum cuidado e depois admiram quando elas começam a apresentar defeito. Para assegurar uma longa vida útil às suas fitas, siga estas regras simples (quase todas elas também se aplicam aos disquetes)

  • Rotule claramente todas as suas fitas.
  • Guarde as fitas nos estojos quando não estiverem sendo usadas.
  • Guarde as fitas em um lugar fresco e seco.
  • Evite deixar as fitas nas proximidades de aparelhos capazes de gerar campos magnéticos, como receptores de TV, computadores, alto-falantes, motores, ventiladores e especialmente telefones.
  • Não deixe uma fita dentro do gravador sem necessidade e não deixe o gravador em "play" a não ser que o programa exija.
  • Depois de gravar a versão definitiva do programa, quebre a lingueta de plástico do cassete para impedir que o programa seja apagado por engano. Se você quiser tornar a gravar alguma coisa na fita, bastará tapar o buraco com fita adesiva.

Nao passe mais que três horas digitando. Faça uma pausa, dê uma volta, descanse a cabeça antes de continuar!

Outros Conselhos

TOMEI UM

BANHO DE

DE CHUVEIRO

Leia a frase acima em voz alta. Talvez fique surpreso ao saber que a maioria das pessoas lê "Tomei um banho de chuveiro". Será que o mesmo aconteceu com você? Na verdade, a frase é "Tomei um branho de de chuveiro". A palavra "de" aparece duas vezes seguidas, mas como a repetição não é esperada, o cérebro não "vê" o segundo "dê".

Um problema muito semelhante ocorre na hora de copiar a listagem de um programa. Muitas vezes você digita o que espera encontrar, em lugar daquilo que realmente está impresso. Outros erros muito comuns são entrar com a letra O em lugar do algarismo zero (que nas listagens deste livro aparece como Ø) e a letra S no lugar do cifrão ($).

Basta um momento de distração para misturar duas linhas consecutivas com textos semelhantes. Assim, por exemplo,

10 PRINT "Entre com o primeiro número"

20 PRINT "Entre com o número seguinte"

pode facilmente ser transformado em:

10 PRINT "Entre com o primeiro seguinte"

Olhe sempre para a tela para verificar se os caracteres que exigem o uso da tecla Shift foram digitados corretamente. Se não fizer isso, podera produzir jóias como:

10 PRINT 6ONDE ESTAO AS ASPAS/6

Jamais tente alterar um programa enquanto está sendo digitado. Deixe para fazer as mudanças depois que o programa estiver funcionando. Não se sinta tentado a pular linhas apenas porque elas lhe parecem dispensáveis. Se em algum ponto o controle do programa for transferido para uma linha que você omitiu, o programa não funcionará.

As linhas que começam com REM contêm comentários que o ajudarão a compreender o funcionamento dos programas. Essas linhas devem ser digitadas exatamente como aparecem na listagem. Depois que o programa estiver funcionando e a versão final estiver salva em fita ou disquete, você poderá, se quiser, criar uma outra cópia sem as linhas de REM.

Não há, porém, nenhuma vantagem real em fazer isso,  já que a pequena economia de memória resultante não justifica o trabalho que você terá para localizar e suprimir as linhas. Nos programas que aparecem neste livro, as linhas de REM podem ser omitidas sem problemas, porque tivemos o cuidado de não transferir o controle do programa para nenhuma linha de REM. Entretanto, não se pode dizer o mesmo de outros programas, existem alguns autores que não têm nenhum escrúpulo em transferir o controle para linhas REM.

Os espaços podem ser de importância vital para um programa de computador. Procure sempre certificar-se que está entrando com o número correto de espaços. Para facilitar o trabalho, alinhe a borda de um pedaço de papel com os caracteres das linhas acima e abaixo da linha que está sendo digitada e use esses caracteres para contar os espaços, deslocando o papel coluna por coluna.

Todas as listagens deste livro foram impressas com 39 colunas de largura, para corresponderem à largura da tela do computador no modo SCREEN 0. Isto o ajudará a verificar se o número de espaços está certo. Assim, por exemplo, se uma linha da listagem termina com quatro espaços, a linha na tela também deve terminar com quatro espaços. As instruções que ocupam mais de uma linha na tela exigem uma atenção especial. Aperte a tecla RETURN apenas quando chegar no final da instrução. Se você se distrair e apertar a tecla RETURN ao chegar ao final da primeira linha, a instrução será carregada de forma truncada.

Usando uma régua para marcar a linha em que está, você reduzirá ainda mais a possibilidade de erros.

Se você seguir todos os conselhos aqui enunciados, não deverá encontrar grandes problemas. É inevitável, porém, que, apesar de todas as precauções, apareçam alguns erros nos seus programas. Nesse caso, consulte o último capítulo do livro, que contém alguns conselhos úteis para localizar erros.

Acentos, Cedilha e Letras Minúsculas

Embora os micros brasileiros disponham de acentos, estes em geral são usados para mostrar mensagens na tela e não para entrada de dados no computador. Esta é a filosofia adotada neste livro. Assim, não use acentos ou cedilha para responder às perguntas do computador. Os acentos devem ser simplesmente omitidos, o "ç", substituído pela letra "c". A única exceção é o jogo "Hoje, o Brasil", em que, por se tratar de um  jogo didático, os nomes dos estados e capitais só são aceitos pelo computador quando digitados corretamente, com todos os acentos que possuem.

(OC) Tomei liberdade de não usar acentos nem em mensagens impressas, nem em entradas de dados. E memso o programa "Hoje, o Brasil" inicialmente será digitado sem acentuação, posteriormente, posso publicar uma versão com acentos.

Por outro lado, com exceção do jogo Maior-Metor, em que aletra "M" é usada para indicar "maior" e a letra "m" para indicar "menor", as letras maíusculas e minúsculas podem ser usadas indistintamente para responder às perguntas formuladas pelo computador.


Técnicas Usadas nos Programas

Ponteiro de Cor (Cores Lógicas)

O sistema de atribuição de cores adotado no MSX pode ser usado para criar a ilusão de um movimento muito rápido. O método consiste em definir separadamente cada elemento de uma imagem através de diferentes ponteiros de cor. Em seguida, os ponteiros são trocados pelo próprio programa. Quando as cores são modificadas, o efeito na tela é instantâneo e cria a ilusão de movimento.

O programa Labirinto é um excelente exemplo do uso desta técnica. O resultado é um labirinto em que o ponto de vista da pessoa que está jogando muda rapidamente. Não seria possível conseguir o mesmo efeito de outra forma, a não ser recorrendo a um extenso programa em linguagem de máquina.

Ou Exclusivo (XOR)

Esta é outra técnica que é usada neste livro. O uso do XOR permite superpor informações a uma imagem que já esteja presente na tela. Ao ser executada uma segunda vez, a operação XOR remove a informação adicional, deixando a imagem antiga inalterada.

Exemplos dos comandos necessários para usar esta técnica podem ser encontrados em muitos dos programas. O programa Xadrez contém alguns ótimos exemplos.

O objetivo principal deste livro, como já dissemos, é oferecer programas agradáveis e divertidos. Para descrever com pormenores como cada um desses programas funciona, teríamos que reduzir à metade o número de jogos que o livro contém.

Se você se dispuser a estudar a estrutura lógica de cada programa, descobrirá muitas soluções interessantes e originais para problemas práticos de programação. Tente compreender a razão pela qual certas rotinas são usadas e a forma como funcionam. Depois que salvar em fita a versão final de cada programa, experimetne modificá-lo de diversas maneiras para ver o que acontece, assim, aprenderá muito mais a respeito de programação e poderá incorporar o que aprendeu aos seus próprios programas.

Agora chega de conversa e vamos começar a carregar nossos jogos.


Marie Celeste

Artigo Original: Issi, Jim e PaulG, Digitação: Wilson e William Pilon

livjogos-marieceleste

Uma Aventura no Mar

Neste jogo de aventura, você se encontra ancorado ao lado do lendário navio-fantasma.

Qual é o segredo do Marie Celeste? Onde está a tripulação?

Para resolver este mistério marítimo, basta fornecer as instruções corretas no computador. As mensagens foram misturadas na listagem para que você não descubra as respostas enquanto estiver digitando o programa.

Na maioria dos jogos de aventura, as direções são indicadas como norte, sul, leste e oeste. Neste jogo, porém, como se trata de uma aventura náutica, as direções são proa, popa, bombordo e boreste, que correspondem, respectivamente, à parte dianteira do navio, à parte traseira, ao lado esquerdo e ao lado direito.

Enquanto estiver jogando, é aconselhavel desenhar um mapa dos lugares por onde já passou. O computador aceita instruções com duas ou três palavras, como "pegar balde" ou "subir pela corda", e abreviações de três letras para as direções: PRO, POP, BOM e BOR. Para saber em que direções você pode se movimentar, entre com "SAIDAS".

Em muitos jogos de aventura, o jogador tem que entrar com a palavra "INVENTARIO" para saber o que está carregando no momento. Nest ejogo, porém, a lista dos objetos é mostrada na tela depois de cada movimento.

No caso dos jogos de aventura, uma das táticas mais eficazes (mas que exige uma boa dose de paciência) é experimentar vários "verbos" diferentes para descobrir quais os que fazem algum efeito. Alguns vermos muito usados em jogos de aventura são: pegar, subir descer e abrir. Tente usar esses e outros semelhantes enquanto estiver a bordo do Marie Celeste. Experimente também dar instruções como "Examinar a chave" no momento apropriado para ver o que acontece. Para abandonar o jogo, entre com "DESISTO". O computador perguntará a você se deseja começar de novo.

Depois que resolver o mistério, convide os amigos para jogar também. Você divertirá vendo outras pessoas passarem pelas mesmas dificuldades que teve que enfrentar. 

livjogos 0000 livjogos 0001
Referência de Listagem
Listagem Única mariec.bas
Solução (embora o jogo é super fácil) mapa

Diga Mestre

Artigo Original: Andy, Digitação: Wilson e William Pilon

livjogos-digamestre

Um Jogo de Adivinhação

Esse jogo não é bem o que parece! Ao carregar o programa, você pode ter a impressão de que compreende perfeitamente o que ele faz, mas durante a execução verá que as coisas não são tão simples assim...

Em Diga, Mestre, o computador é um "professor" que escolhe um assunto e pede a você palavras apropriadas. Suponhamos, por exemplo, que o computador escolha "filmes". Você então pode entrar com "Diga, mestre, serve ALIEN?" O professor pode responder "sim" ou "não".

Cabe a você tentar descobrir a razão da resposta antes de entrar com outro exemplo, como "O Exterminador do Futuro", para o qual a resposta também poderá ser "sim" ou "não". O jogo continua até você conseguir obter três respostas "sim" seguidas, caso em que o computador supõe que você já sabe por que alguns filmes "servem" e outros não.

Mais tarde, quando já estiver dominando perfeitamente o programa, talvez você queira modificá-lo para mudar as regras ou acrescentar novos assuntos, o que poderá constituir um novo desafio!

Mostre a um amigo a listagem do programa. Ele na certa ficará surpreso com a falta de dados. Invente uma explicação qualquer ou então diga-lhe o seguinte:

O programa utiliza um sistema avançado de análise de texto com base nas características matemáticas das palavras da língua portuguesa. Assim, a seleção criteriosa de parâmetros permite aplicar rotinas de teste relativamente gerais a respostas específicas.

Naturalmente, você sabe que esta explicação é fantasiosa, já que você mesmo entrou com as linhas em que as palavras são verificadas! Por que, então, na categoria "insetos", mosquito serve e mosca e percevejo não servem?

Notas:

  • Se você cometer um erro quando estiver entrando com uma palavra, aperte a tecla retrocesso. A palavra inteira será cancelada e você poderá digitá-la de novo.
  • Se desistir de descobrir a regra e quiser continuar jogando, entre com a palavra "DESISTO"
livjogos 0003 livjogos 0004
Referência de Listagens
Listagem Única digam.bas

Eu Acuso

Artigo Original: Jim/Andy, Digitação: Wilson e William Pilon

livjogos-euacuso

Descubra Quem é o Culpado

Este é um jogo para testar a sua capacidade de dedução.

Você é o Inspetor Silva do DIC (Departamento de Investigações Criminais) e está sendo submetido a uma série de testes, que têm por objetivo avaliar sua coragem, persistência e capacidade de usar o computador em investigações criminais. Como não podemos reproduzir aqui as provas de coragem e persistência, vamos nos limitar ao teste de investigação por computador.

O computador tem a capacidade de gerar milhares de diferentes permutações a partir de um certo conjunto de dados. Em um piscar de olhos, ele seleciona um criminoso e uma série de características pessoais que o identificam perfeitamente. Você tem direito de interrogar uma testemunha do crime a respeito de seis dessas características, para isso, basta entrar no computador com o número correspondente à característica desejada, de acordo com a lista que aparece do lado esquerdo da tela. O computador então mostra as características dos diferentes suspeitos e a característica do criminoso, de acordo com o depoimento da testemunha. Se você souber escolher bem as perguntas, poderá descobrir facilmente o culpado!

Depois de fazer as seis perguntas, você entra com o número da pessoa que julga ser o criminoso. O computador então revela se você acertou ou não.

livjogos 0005 livjogos 0006
Referência de Listagem
Listagem Única acuso.bas

Star Trek

Artigo Original: Issi, Digitação: Wilson e William Pilon

livjogos-startrek

Você Agora é o Capital Kirk

Já foram escritas versões de Star Trek para praticamente todos os micros lançados no mercado, o que demonstra a populariedade deste jogo. Agora você pode comandar uma Nave Estela da classe MSX, com todos os fasores e sensores a que tem direito. Sua missão é eliminar os perigosos klingons antes que sua nave seja vaporizada ou fique sem energia.

Esta versão do jogo Star Trek inclui um mapa estelar completo e movimentos em "tempo real" durante os combates com o inimigo e quando a nave atraca em uma base estelar. Segue um extrato do megamanual de 32544 páginas intitulado: "Aprenda a Comandar uma Nave Estelar em 4000 Lições".

Não perca a calma!

Lembre-se de que tudo que tem a perder é: sua vida, 20 bilhões de créditos intergaláticos em equipamentos e as vidas de todos os tripulantes da nave.

Não voe às cegas!

Use os sensores da nave para verificar sua posição na galáxia. Apertando a letra L, você liga o Sensor de Longo Alcance (SLA), que mostra a posição da sua nave, das bases estelares e das naves inimigas. Os setores ocupados por klingons são representados no SLA por um círculo com uma flecha, o símbolo de Marte, deus da guerra. Os setores onde existem bases estelares são representados por um círculo com uma cruz, o símbolo de Vênus, a deusa do amor. Os setores ocupados tanto por inimigos como por bases estelares são indicados por um quadrado. Cada vez que você usa o sensor de long alcance, você gasta 5 unidades de energia do tipo usado para os motores.

Não perca o inimigo de vista!

Apertando a tecla C, você liga o Sensor de Curto Alcance (SCA), que indica quantos inimigos e bases estelares existem no setor que você se encontra no momento. Cada vez que você liga o SCA, são consumidas 5 unidades de energia do tipo usado para os motores.

Cuidado com a falta de energia!

Para reabastecer a nave, você deve atravar em uma base estelar, apertando a tecla A no painel de controle e usando o controle de direção para posicionar a base estelar no centro da tela. Depois de atracar, você receberá 20 unidades de energia para os motores da nave e mais 20 para os fasores (a energia da blindagem não pode ser reposta). A capacidade máxima é de 95 unidades. Não ultrapasse este limite, caso contrário a nave sofrerá uma explosão.

Não perca tempo!

Como comandante da Esquadra Estelar, sua missão é destruir os perigosos klingons o mais depressa que puder.

Se houver klingons no setor em que você se encontra, aperte a tecla P para fazer soar o sinal de Postos de Combate e dê início ao ataque. Coloque uma nave inimiga no centro da tela, usando o controle de direção (joystick ou teclas de controle de cursor) e aperte o botão de tiro ou a barra de espaço para disparar os fasores.

Se você não agir com rapidez suficiente, as naves dos klingons começarão a responder ao fogo, roubando energia da sua blindagem. Não desista! Procure "limpar" o setor antes de partir para outras batalhas. Caso, porém, a energia dos fasores se esgote, aperte a tecla RETURN para fugir do combate e poder se reabastecer em uma base.

Como mudar de setor.

Para viajar para qualquer setor, é preciso apertar a tecla W, seguida por um número entre 1 e 5, que indica o fator "warp" ou distância que você deseja viajar. Em seguida, é preciso indicar a direção do movimento, escolhendo um número entre 1 e 8. Cada número corresponde a uma direção no espaço, começando do topo da tela e continuando no sentido dos ponteiros do relógio.

O desafio supremo.

No início da missão, você escolhe o grau de dificuldade. No nível mais fácil você tem que destruir 10 inimigos, no nível de dificuldade média, 20, no nível difícil, 30. Quando você consegue concluir uma missão com sucesso, a Central de Controle dos klingons é informada e envia uma nova esquadra, com 10 naves a mais que a anterior. O desafio supremo consiste em localizar e destruir 200 naves inimigas. Está preparado, capitão Kirk? Então pode começar...

livjogos 0007 livjogos 0009
Referência de Listagem
Listagem Única strek.bas

Super Breakout

Artigo Original: Bootsy, Digitação: Wilson e William Pilon

livjogos-break

Um Clássico dos Fliperamas

Este jogo é recomendado para pessoas de todas as idades. Como é o menor programa do livro, talvez os novatos em programação prefiram começar por ele.

No início, o computador pergunta a você se prefere usar uma raquete grande ou pequena. Então, o jogo começa. O objetivo é eliminar todos os blocos coloridos, atingindo-os com uma bola. Para movimentar a raquete, você usa o joystick ou as teclas de controle do cursor. O importante é prever a trajetória da bola e movimentar a raquete de forma a impedir que a bola atinja a base da tela.

Se você perder uma bola, o computador lhe fornecerá mais três antes de o jogo acabar. No final, o computador mostra o número de blocos que você conseguiu destruir.

livjogos 0011 livjogos 0012
Referência de Listagem
Listagem Única sbreak.bas

Labirinto

Artigo Original: Bootsy, Digitação: Wilson e William Pilon

livjogos-labirinto

Um Jogo Tridimensional

Este é um jogo passado em um labirinto tridimensional no qual você tem uma vista em perspectiva do espaço à sua volta. O objetivo é encontrar rapidamente a saída. Se conseguir o seu intento, escapará do louco que habita o labirinto. Se não, ele pegará você!

A figura que aparece na tela mostra apenas uma parte do labirinto. Uma seta indica a direção para a qual você está voltado no momento. Para mudar de direção, use as teclas de controle do cursor da direita e da esquerda. A tecla de cima faz você dar um passo à frente cada vez que é apertada. A tecla de baixo faz você recuar um passo, sem mudar de direção. Os movimentos também podem ser controlados através de um joystick.

Depois que você consegue chegar ao final do labirinto, o limite de tempo é reduzido e o jogo começa de novo.

O jogo utiliza uma técnica sofisticada, baseada nos ponteiros de cores do MSX, para conseguir uma mudança rápida das imagens. Vale a pena estudar esta técnica com atenção, pois você poderá usá-la para conseguir efeitos de alta velocidade em seus próprios programas.

livjogos 0013 livjogos 0014
Referência de Listagem
Listagem Única labiri.bas

Damas

Artigo Original: Issi, Digitação: Wilson e William Pilon

livjogos-damas

Um Tabuleiro Eletrônico para Jogar Damas

A ideia é muto simples: você deve acabar com as peças do adversário saltando sobre elas com as suas próprias peças. Para poder executar o salto, é preciso que haja uma casa vazia do outro lado da peça adversária.

Para movimentar uma peça, basta entrar com uma letra para indicar a coluna em que a peça se encontra e um número para indicar a linha. Em seguida, a casa para onde a peça vai deve ser indicada da mesma forma.

Quando não é possível saltar sobre nenhuma peça adersária, uma das peças deve ser movimentada para uma casa vizinha da mesma cor. Quando uma peça atinge a extremidade oposta do tabuleiro, ela se transforma em dama. As damas podem andar para trás e são, portanto, peças mais importantes que as peças comuns (nesta versão do jogo, ao contrário da versão mais conhecida, as damas não podem andar mais de uma casa de cada vez).

Algumas pessoas usam uma regra um pouco diferente. Em vez de exigirem que o jogador tome uma peça do adversário sempre que isso for possível, estabelecem que o jogador perca essa peça caso execute uma jogada normal de deslocamento com outra de suas peças. Esta penalidade é chamada de "soprar" a peça adversária.

Nesta versão para o MSX, o programa se recusa a aceitar uma jogada normal quando há uma peça do adversário que possa ser tomada. O computador continua a mostrar que é a vez do mesmo jogador até que ele execute uma jogada de salto.

livjogos 0015 livjogos 0016
Referência de Listagem
Listagem Única damas.bas

Xadrez

Artigo Original: Issi, Bootsy e Andy, Digitação: Wilson e William Pilon

livjogos-xadrez

Um Tabuleiro Eletrônico para Jogar Xadrez

Você provavelmente já ouviu falar de computadores que jogam xadrez. Um programa inteligente para jogar xadrez, porém, seria grande demais para caber neste livro, de modo que preferimos criar um programa que fosse útil como "tabuleiro eletrônico". O programa pode ser usado para substituir um tabuleiro comun, com a vantagem de que não é necessário anotar as jogadas. Os dois jogadores entram com os lances usando a notação normal do xadrez, isto é, letras para indicar as colunas e números para indicar as linhas.

O computador examina cada lance para verificar se é possível dentro das regras do xadrez. Apenas são permitidos os movimentos de peças da cor correta, de uma casa ocupada para uma casa que possa ser atingida por essa peça. As peças tomadas são automaticamente removidas do jogo.

O programa não indica xeque nem xeque-mate e permite jogadas que deixem o rei em xeque, cabe aos jogadores tomar cuidado para evitar que isso aconteça. O programa também não prevê a tomada de peões em passant, a opção "remover peça" deve ser usada para retirar um peão do tabuleiro se ele for tomado em passant.

O programa executa corretamente os dois tipos de roque, verificando primeiro se o rei e a torre estão nas suas posições iniciais e se não existe nenhuma peça entre eles. Entretanto, o computador aceita o roque se uma das peças já foi movimentada e voltou à posição inicial ou se uma das casas entre o rei e a torre estiver em xeque. Cabe aos jogadores evitar uma jogada de roque nesses últimos dois casos.

O programa também permite fixar uma posição inicial qualquer para as peças, o que é útil para o estudo de problemas de xadrez ou variantes de aberturas e finais. Além disso, jogos de até 100 lances podem ser salvos em fita e analisados jogada por jogada. Os peões são automaticamente promovidos a damas quando chegam à última linha.

Resumo dos Comandos e Opções

Para mudar a posição inicial das peças: Quando o computador perguntar "Você quer montar o tabuleiro?", entre com "S" e indique a posição das peças, da esquerda para a direita e de cima para baixo, usando o seguinte código:

Peças Brancas: P=peão, T=torre, C=cavalo, R=rei, D=dama, B=bispo.

Peças Pretas: Os mesmos códigos, mas usando letras minúsculas.

Casas Vazias: Aperte a barra de espaço.

As brancas sempre começam na parte de baixo da tela.

Para remover uma peça: Entre CODE-R e a posição da peça. A vez passa para o adversário.

Para fazer o roque: Entre com R e depois com E ou D, conforme o caso.

Para salvar uma partida: Entre GRAPH-S, depois de apertar as teclas RECORD e PLAY do gravador, se estiver usando fita. Se estiver usando disquete, indique a unidade de disco em que se encontra o seu disquete de dados (se quiser, você também pode salvar o jogo no disquete de programas).

Para carregar uma partida: Entre com GRAPH-C e depois aperte a tecla PLAY do gravador. O computador carregará o primeiro arquivo que encontrar na fita. Se estiver usando disquete, o computador carregará a última partida que foi salva, que estará guardada no arquivo de dados chamado XADREZ. Depois de carregar a partida, o computador entra automaticamente no modo de repetição (vide item seguinte).

Para repetir uma partida: Entre com GRAPH-J. Cada vez que a barra de espaço for apertada, o computador mostrará uma nova jogada, a partir da inicial. Para voltar ao modo normal, basta entrar de novo com GRAPH-J.

Para abandonar uma partida: Entre com GRAPH-A. O computador lhe oferece a oportunidade de salvar a partida em fita ou disquete antes de começar um novo jogo.

livjogos 0024 livjogos 0025

(OC) O jogo contém alguns bugs que ainda não consegui corrigir: O peão não vira dama, a remoção de peça não funciona, não da saída na montagem do tabuleiro, e no save/load o último movimento da partida não é salvo/carrregado.

Referência de Listagem
Listagem Única xadrez.bas

Gustavus

Artigo Original: Issi, Digitação Wilson e William Pilon

livjogos-gustavus

Um Curioso Jogo de Estratégia

Pelo que sei, esta é a primeira adaptação para computador de Simmons Simples, um conhecido jogo de lápis e papel.

Simmons Simples ou Sim foi inventado por um sujeito chamado Gustavus Simmons. Decidimos chamar esta versão de Gustavus porque o nome parece mais pomposo que o do seu primo pobre.

Neste jogo, cada jogador tem que traçar uma reta ligando dois pontos. Perde o primeiro que formar um triângulo de sua própria cor. O segredo é forçar o adversário a formar o primeiro triângulo.

O computador se encarrega de mudar a cor da reta de acordo com o jogador e de indicar o vencedor assim que é formado um triângulo.

Para traçar uma rega, basta movimentar o cursor até a posição desejada, usando o joystick ou as teclas de controle do cursor da direita e da esquerda. Quando o cursor estiver sobre o primeiro ponto da reta a ser traçada, aperte o botão de tiro ou a barra de espaço. Em seguida, desloque o cursor para o segundo ponto da reta e torne a apertar o botão de tiro ou a barra de espaço. Se a reta não for permitida, o computador se recusará a traçá-la e emitirá u m ruído característico. Nesse caso, será preciso entrar de novo com os pontos inicial e final.

O jogo não pode terminar empatado e aparentemente não há nenhuma vantagem em ser o primeiro a jogar.

livjogos 0026 livjogos 0027
Referência de Listagem
Listagem Única gustav.bas

Corrida de Dados

Artigo Original: Andy e Jim, Digitação: Wilson e William Pilon

livjogos-dadocorrida

Foi Dada a Partida!

Este é o primeiro de u ma série de três jogos de dados. Todos usam a mesma rotina central, os jogos são escolhidos através de um menu.

Corrida de Dados é um jogo de corrida no qual o resultado dos dados determina a distância percorrida pelos cavalos. Pode ser jogado por duas a quatro pessoas. O botão de tiro (ou barra de espaço) deve ser apertado duas vezes, uma para sacudir os dados e outra para jogá-los na mesa. Isso quer dizer que o jogador pode ascudir os dados durante o tempo que quiser.

Os cavalos disputam para ver qual conseguirá chegar primeiro ao lado direito da tela. Entretanto, para que o último jogador não seja prejudicado, o resultado só é anunciado depois que termina a rodada.

O jogo pode ser interrompido a qualquer momento, bastando para isso entrar com D (de "Desisto"). Nesse caso, o programa volta ao menu.

Nota: Este jogo e os dois que se seguem usam uma rotina chamada Dados, que deve ser carregada primeiro e salva em fita. Os jogos podem ser então acrescentados um por um. Não será possível escolher um jogo a partir do menu até que todos os três tenham sido carregados.

livjogos 0018 livjogos 0019
Referência de Listagem
Parcial dados.cor
Total dados.bas

Olhos de Cobra

Artigo Original: Andy e Jim, Digitação Wilson e William Pilon

livjogos-dadocobra

Façam suas apostas!

Este é o segundo dos três jogos de dados. Corrida de Dados deve ser carregado em primeiro lugar, em seguida, carregue Olhos de Cobra. As instruções para jogar os dados são as mesmas.

O jogo é para quatro jogadores e as apostas aparecem na tela. No início, é estabelecida uma meta em cruzados, que pode variar entre Cz$ 40,00 e Cz$ 400,00. A banca começa com Cz$ 5,00 se a meta é menor que Cz$ 200,00 e Cz$ 10,00 se a meta é igual ou maior que Cz$ 200,00. Os jogadores então jogam os dados, um de cada vez. Se um jogador tira uma dobradinha, recebe o dinheiro da banca. Se um jogador tira "olhos de cobra" (duplo um), recebe o dobro do dinheiro da banca. Cada vez que a banca paga a um jogador, seu dinheiro volta ao valor inicial.

Depois de cada rodada, a banca recebe uma quantia igual ao valor inicial. O jogo continua até que um jogador consiga atingir a meta. Para interromper o jogo antes do final e voltar ao menu, entre com D.

livjogos 0020 livjogos 0021
Referência de Listagem
Parcial dados.cob
Total dados.bas

Craps

Artigo Original: Andy e Jim, Digitação Wilson e William Pilon

livjogos-dadocraps

Igualzinho a Las Vegas!

Aqui está a versão para o seu microcomputador do jogo de dados que os cassinos de Las Vegas tornaram popular.

Dois a quatro jogadores agora podem fazer de conta que estão em Las Vegas, por cortesia do MSX.

No início, cada jogador dispõe de Cz$ 100,00 (você pode mudar para dólares, para tornar o jogo mais emocionante!). Na sua vez, o jogador pode apostar qualquer quantia até o máximo de que dispõe na ocasião. Em seguida, está na hora de jogar os dados.

Se da primeira vez o jogador obtém 7 ou 11, recebe uma quantia igual à que apostou e passa a vez. Se obtém 2, 3 ou 12, perde tudo que apostou e passa a vez. Se obtém qualquer outro número, este número passa a ser o ponto, isto é, o valor que ele vai tentar obter novamente. O jogador continua a lançar os dados até obter o ponto, caso em que recebe uma quantia igual à que apostou, ou 7, caso em que perde a aposta. Nos dois casos, o jogador passa a vez.

Se um jogador perde todo o dinheiro que tem, é imediatamente excluído do jogo. O jogo prossegue até que reste apenas um jogador.

Para interromper o jogo antes do final e voltar ao menu, entre com D.

Antes de carregar este jogo, carregue Corrida de Dados e Olhos de Cobra.

livjogos 0022 livjogos 0023
Referência de Listagem
Parcial dados.cra
Total dados.bas

Vinte e Um

Artigo Original: Andy e Jim, Digitação Wilson e William Pilon

livjogos-cartas21

Um 21 Real Pode Quebrar a Banca

Nesta versão do conhecido jogo de cartas, a banca começa com Cz$ 500,00 e cada jogador tem Cz$ 100,00. Um ou dois jogadores jogam contra a banca, tentando chegar o mais perto possível de vinte e um pontor.

Inicialmente, cada jogador recebe uma carta aberta e a banca recebe uma carta fechada. Os jogadores podem então apostar qualquer quantia até o máximo de que dispõe na ocasião. Uma segunda carta é distribuída. Ao chegar a sua vez, cada jogador pode fazer as seguintes opções:

  • Segurar - Se o total das cartas é 16 ou mais e o jogador aperta a tecla S, ele passa a vez.
  • Pedir - O jogador aperta a tecla P para pedir mais uma carta.
  • Dobrar - Se o jogador acha que está com um jogo muito bom, aperta a tecla D para dobrar a aposta. Nesse caso, sempre recebe mais uma carta.

No vinte e um, o ás pode valer 1 ou 11, de acordo com o que for mais conveniente para o jogador. As figuras (valete, dama e rei) valem 10 pontos. As cartas restantes têm um valor igual ao dos seus números (o 10 vale 10, o 9 vale 9, etc.). Se a soma dos pontos de um jogador ultrapassa 21, ele perde a aposta e passa a vez. Depois que todos os jogadores terminam, a banca joga sua mão e faz os pagamentos. É preciso não esquecer que os jogadores jogam contra a banca e não um contra o outro.

O resultado de cada mão é calculado da seguinte forma: o jogo mais alto é o 21 real (21 pontos com duas cartas, ás e dama, por exemplo). Em seguida vem a vaza de cinco cartas, qualquer conjunto de cinco cartas cujo conjunto não exceda 21. O terceiro maior jogo é o vinte e um com qualquer número de cartas. Se nenhum desses jogos estiver presente, prevalece a mão com maior número de pontos. Em caso de empate, ganha a banca.

O jogo continua até otodo os jogadores irem a falência ou a banca quebrar. Para recomeçar o jogo, basta apertar a tecla R.

livjogos 0030 livjogos 0031
Referência de Listagem
Listagem Única vinte1.bas

Maior-Menor

Artigo Original: Andy e Jim, Digitação: Wilson e William Pilon

livjogos-cartasmaiormenor

O Dobro ou Nada!

Aqui está a versão computadorizada de outro conhecido jogo de cartas.

Cada jogador começa com Cz$ 150,00 e recebe onze cartas. A primeira carta é virada e o jogador faz uma aposta, que pode ser qualquer quantia até o máximo de que dispõe na ocasião. O computador pode então que o jogado diga se acha que a carta seguinte vai ser maior ou menor que a última carta que foi mostrada. (Para escolher maior, entre com M, para escolher menor, entre com m). Se o jogador acertar, recebe uma quantia igual à que apostou, se escolher a alternativa incorreta ou se as duas cartas tiverem o mesmo valor, perde a aposta. O jogo continua até todas as cartas terem sido viradas.

livjogos 0032 livjogos 0033
Referência de Listagem
Listagem Única maimen.bas

Memória

Artigo Original: Andy e Jim, Digitação: Wilson e William Pilon

livjogos-cartasmemoria

Encontre os pares

Este jogo aparentemente fácil exige boa memória e um grande poder de concentração.

O jogo começa com todas as cartas com a face virada para baixo. O primeiro jogador vira duas cartas. Se elas formam um par, o jogador faz um ponto e as cartas são retiradas, caso contrário, as cartas são viradas de novo com a face para baixo. Nos dois casos, a vez passa para o segundo jogador. O jogo prossegue até acabarem as cartas, o vencedor é aquele que conseguir encontrar o maior número de pares.

Em algumas versões deste jogo, a pessoa que descobre um par tem o direito de virar mais duas cartas. No nosso caso, porém, em que são usadas apenas 12 cartas, o jogo fica mais interessante se só for permitido virar um par a cada jogada.

livjogos 0034 livjogos 0035
Referência de Listagem
Listagem Única memori.bas

Senha

Artigo Original: Issi, Digitação: Wilson e William Pilon

livjogos-senhas

Um Jogo de Raciocinio

O objetivo deste jogo é descobrir uma combinação secreta de quatro cores (entre seis cores possíveis), escolhendo quatro cores em uma certa ordem. Depois de cada tentativa, o computador fornece as seguintes indicações:

  • Um ponto de exclamação para cada cor certa no lugar certo.
  • Um ponto de interrogação para cada cor certa no lugar errado.

Para tornar o jogo mais difícil, a ordem em que as informações são mostradas pelo computador não tem relação com a ordem com que as cores foram escolhidas, primeiro são mostrados todos os pontos de exclamação e depois todos os pontos de interrogação.

As cores são escolhidas usando-se o joystick ou as teclas de controle do cursor para colocar uma seta sobre a cor desejada. O botão de tiro ou a tecla de espaço é então usado para "fixar" a cor. O processo é repetido para cada uma das quatro posições.

O jogador tem dez oportunidades para descobrir a sequência correta. Depois da décima tentativa, o computador mostra a combinação secreta na parte de cima da tela. Para jogar de novo, basta apertar a tecla S.

No início do jogo, o computador oferece a opção de usar símbolos em lugar de cores. Esta opção é particularmente recomendada no caso de receptores de TV em preto e branco.

livjogos 0036 livjogos 0037
Referência de Listagem
Listagem Única senha.bas

Alberto Diz

Artigo Original: Jim e Andy, Digitação: Wilson e William Pilon

livjogos-albertodiz

Alberto Diz: Carregue Este Programa

Se não me engano, esta é a primeira versão para computador do jogo para crianças conhecido como Simão Diz.

O programa pode ser usado para ensinar os conceitos de esquerda e direita, mas é preciso não esquecer que, da forma como foi escrito, direita e esquerda se referem ao boneco que aparece na tela e não à pessoa que está sentada diante do computador!

Você começa o jogo com apenas um ponto. A mensagem do computador informa o que você tem a fazer e também quem está dando a ordem. Se é Alberto que está mandando, obedeça prontamente, mas se a ordem partiu de Roberto, deve ser ignorada! O bonequinho na tela obedece a todos os seus comandos.

Você pode receber quatro ordens diferentes. Para executar as ordens "Para Cima" e "Para Baixo", use o joystick ou as teclas de controle do cursor da forma normal. As ordens "Esquerda" e "Direita" são cumpridas usando o joystick ou as teclas de controle do cursor, mas em relação ao boneco que aparece na tela. Em outras palavras, se você mover o joystick para a esquerda ou apertar a tecla de controle de cursor da esquerda, o boneco levantará o braço direito. Esta combinação foi introduzida para tornar o jogo mais difícil. Você tem que decidir rapidamente se vai apertar alguma tecla e qual a tecla que deve ser apertada, a da esquerda ou a da direita. Jogue algumas vezes e verá que não é tão fácil como parece.

livjogos 0038 livjogos 0039
Referência de Listagem
Listagem Única albert.bas

Papagaios

Artigo Original: Andy e Jim, Digitação: Wilson e William Pilon

livjogos-papagaios

Vamos Imitar os Papagaios?

Aqui estão quatro papagaios, cada um de u ma cor diferente e com uma corda musical diferente no bico.

Quando o programa começa, um dos papagaios puxa a corda, produzindo uma nota musical. Você deve reproduzir essa nota. Em seguida, o computador mostra uma sequência de dois papagaios (duas notas), que você também deve repetir, e assim por diante.

Os poleiros dos pássaros foram dispostos na tela de modo a corresponderem à posição das teclas de controle do cursor. Assim, quando você aperta com a seta para cima o papagaio de cima puxa uma corda, quando aperta a tecla com a seta para a esquerda é a vez do papagaio da esquerda e assim por diante. Como nos outros jogos, pode ser usado um joystick em lugar das teclas de controle do cursor.

Quando testamos o programa, ninguém conseguiu reproduzir uma sequência de mais de 25 notas, a média ficou por volta de 12. O programa foi feito para produzir sequências de até 50 notas. Se você conseguir chegar ao final, parabéns! Você possui uma memória fantástica... ou será que é um androide?

livjogos 0041 livjogos 0042
Referência de Listagem
Listagem Única parrot.bas

Pic Man

Artigo Original: Jim, Digitação: Wilson e William Pilon

livjogos-picman

O Devorador de Biscoitos

Este é o primeiro dos três jogos de fliperama incluídos neste livro. Trata-se de uma variação de um jogo bem conhecido, em que você guia o herói por um labirinto, comendo biscoitos no caminho.

Como nos jogos de fliperama as coisas nunca são fáceis, existem alguns fantasminhas que gostan tanto de biscoitos quanto o seu herói. Além disso, são capazes de matá-lo se o alcançarem! O objetivo é comer o máximo possível de biscoitos em cada quadro, sem ser morto por um dos fantasmas. Quando os biscoitos acabam, aparece um novo quadro.

Como sempre, você pode usar o joystick ou as teclas de controle do cursor para controlar o movimento do Pic Man.

livjogos 0043 livjogos 0044
Referência de Listagem
Listagem Única picman.bas

Frigger

Artigo Original: Andy e Bootsy, Digitação: Wilson e William Pilon

livjogos-frigger

Travessia Perigosa

Era uma vez, na Austrália, um pequeno canguru chamado Frigger. Frigger morava perto de um rio caudaloso, cheio de troncos flutuantes. Costumava ficar sentado do lado de fora da toca, contemplando a bela paisagem que o cercava. Um dia, porém, tudo mudou. Os humanos chegaram e construíram uma auto-estrada do outro lado do rio. A partir desse dia, sempre que Frigger e os amigos saem em busca de comida, têm que atravessar a estrada (evitando os carros) e o rio (pulando de tronco em tronco) para chegar em casa.

Só você, caro leitor, pode ajudar Frigger e seus amigos a voltarem para casa em segurança. Use o joystick ou as teclas de controle do cursor para guiar os cangurus e será recompensado com muitos pontos!

livjogos 0045 livjogos 0047
Referência de Listagem
Listagem Única frigge.bas

Dinkey Kong

Artigo Original: Bootsy, Digitação: Wilson e William Pilon

livjogos-dinkeykong

Salvando a Mocinha

Dinkey Kong pertence à família de jogos de fliperama em que o herói tem que chegar ao topo de um edifício, evitando uma série de obstáculos que aparecem no caminho.

Nesta versão, o monstro que aparece na parte superior da tela raptou a namorada do herói e a mantém prisioneira. Agora ele passa o tempo todo rolando grandes tonéis de aço, em uma tentativa de esmagar o herói.

O jogo tem três telas diferentes, se você conseguir chegar ao final, a primeira tela voltará a aparecer.

Os movimentos do herói são controlados com o auxílio do joystick ou das teclas de controle do cursor. Para pular, é só apertar o botão de tiro ou a barra de espaço.

livjogos 0048 livjogos 0049
Referência de Listagem
Dinkey Kong dinkey.bas

Banho de Palavras

Artigo Original: Issi, Digitação: Wilson e William Pilon

livjogos-banhopalavras

Decifra-me ou eu te Molho!

Este jogo é uma versão mais divertida, menos cruel, do conhecido jogo da forca. Se o jogador não consegue descobrir a palavra depois de um número razoável de tentativas, as próprias letras erradas o empurram para dentro d'água!

As palavras podem ter até oito letras e não podem conter hifens. O programa original tem 60 palavras, mas não é difícil ampliar a lista ou trocar as palavras por outras. Quando o jogador acerta uma letra, ela aparece na posição que ocupava na palavra. Quando a letra está errada, o jogador é empurrado na direção da piscina. Quando a palavra é completada a tempo, o jogador volta à posição inicial e o jogo começa de novo com outra palavra.

Quando o jogador não consegue descobrir a palavra, ela não é mostrada. Como as palavras são escolhidas ao acaso, a mesma palavra pode voltar a aparecer mais tarde.

livjogos 0050 livjogos 0051
Referência de Listagem
Listagem Única banho.bas

Aritmética

Artigo Original: Issi, Digitação: Wilson e William Pilon

livjogos-aritmetica

Contas e Mais Contas

Este programa pode gerar um n;umero muito grande de problemas de aritmética. O próprio jogador seleciona o grau de dificuldade (fácil, médio, difícil) e a operação desejada (soma, subtração, multiplicação ou divisão). As perguntas e respostas aparecem em um quadro-negro.

No nível fácil, os problemas são todos de soma, o jogador tem que calcular o número total de "carinhas" que aparecem na tela. No nível médio de dificuldade,  jogador pode escolher uma das quatro operações e todas as respostas são números inteiros. Essas contas não são difíceis de fazer de cabeça. A maioria das pessoas só consegue resolver os problemas do nível mais difícil usando lápis e papel (ou, naturalmente, uma calculadora).

Para responder às perguntas, é preciso entrar com o resultado e apertar a tecla RETURN. Isto quer dizer que se você descobrir que entrou com o número errado, ainda pode corrigi-lo, contanto que ainda não tenha apertado a tecla RETURN. O programa aceita até duas respostas erradas antes de revelar o resultado correto.

Depois de dez perguntas, o computador mostra na tela um "boletim" com o número de respostas corretas e a porcentagem de acertos.

livjogos 0054 livjogos 0055
Referência de Listagem
Listagem Única aritme.bas

Hoje, o Brasil

Artigo Original: Jim, Digitação: Wilson e William Pilon

livjogos-hojebrasil

Amanhã, o Mundo!

Este é  um teste de geografia baseado no mapa do Brasil. O jogo consiste em identificar corretamente os estados e capitais indicados no mapa. O jogador pode escolher se o teste vai versar sobre cidades, estados ou ambos.

O programa pode ser usado como modelo para desenvolver um teste mais completo a respeito do Brasil ou, como a legenda acima sugere, um teste a respeito do mundo inteiro! Na verdade, a pesquisa dos dados a serem incluídos na listagem pode facilmente tornar-se mais educativa que o próprio programa...

livjogos 0056 livjogos 0057
Referência de Listagem
Listagem Única brasil.bas

Gerador de Caracteres

Artigo Original: Andy e Bootsy, Digitação: Wilson e William Pilon

livjogos-geracaracter

Crie Seu Próprio Conjunto de Caracteres Gráficos

Criar caracteres pode ser tão divertido quanto jogar um jogo. Este programa utilitário permite redefinir os caracteres do MSX e combiná-los para gerar figuras mais complexas.

O programa mostra os caracteres originais e oferece ao usuário a oportunidade de adaptá-los, permutá-los ou criar caracteres totalmente nvos. As definições dos caracteres podem ser copiadas e usadas nos mais diversos tipos de programas. Conjuntos completos de caracteres podem ser salvos em fita para uso futuro.

Embora alguns programas deste livro utilizem caracteres especiais, outros usam apenas os caracteres originais. A apresentação dos jogos do segundo tipo pode ser melhorada com o auxílio do gerador de caracteres.

Como o programa oferece um número relativamente grande de opções, pode ser que você leve um certo tempo para aprender a usá-lo da forma mais eficiente. Não deixe de consultar a lista de instruções abaixo sempre que tiver alguma dúvida.

Uso do Gerador de Caracteres

O programa começa por mostrar o primeiro caractere escolhido, dentro de um quadriculado de 8 por 8. O usuário pode então escolher uma das opções abaixo, apertando a tecla com a letra correspondente à inicial da instrução:

  • Apagar - Apaga o caractere corrente.
  • Ler - Pede o número de um caractere. Depois que o usuário entra com o último algarismo, o caractere escolhido aparece dentro do quadriculado e pode ser editado, deslocado, etc..
  • Editar - Coloca um cursor intermitente no canto superior esquerdo do quadriculado. O cursor pode ser movimentado com o auxílio do joystick ou das teclas de controle do cursor. O botão de tiro ou a barra de espaço serve para mudar um quadrado de "cheio" para "vazio" ou vice-versa. Para dar a figura por terminada, aperte a tecla RETURN. Em seguida, escolha a que número de código será associado o caractere que você acabou de criar.
  • Números - Nesta opção, o usuário escolhe o número de código a que o caractere será associado e depois entra com oito valores, correspondentes aos números binários que representam as oito linhas do quadriculado, começando pela linha de cima. Desta forma o novo caractere é gerado diretamente a partir de dados numéricos. Para passar para outra opção, aperte a tecla RETURN.
  • Refletir - O computador pede o número de um caractere e depois pergunta se ele deve ser refletido em um eixo vertical (trocar direita por esquerda) ou horizontal (virar de cabeça para baixo). O resultado aparece no quadriculado. Para armazenar o novo caractere, basta escolher a opção Editar, apertar a tecla RETURN e entrar com o número de código escolhido. A mesma observação vale para as duas opções seguintes.
  • Vertical (Deslocamento) - O computador pergunta se o deslocamento é para cima ou para baixo e desloca a figura uma linha para cima ou para baixo. A linha que desaparece na parte de cima torna a aparecer na parte de baixo e vice-versa.
  • Horizontal (Deslocamento) - Como no caso do deslocamento vertical, esceto pelo fato de que o computador pergunta se o deslocamento deve ser para direita ou para a esquerda.
  • Trocar - O computador pede dois números de código e troca as definições dos caracteres correspondentes.
  • Montar - Remove o quadriculado e cria um campo de 14x10 caracteres no qual o usuário pode observar o resultado de qualquer combinação de caracteres. Depois de fornecer o número do código de  um caractere, o usuário pode deslocar esse caractere para qualquer posição dentro do campo, usando o joystick ou as teclas de controle do cursor. Para "fixar" um caractere na sua posição corrente, basta apertar o botão de tiro ou a barra de espaço. Para entrar com um novo caractere, aperte RETURN e, sem soltar a tecla, entre com o número de código do caractere desejado. Para sair dessa opção, aperte RETURN.
  • Salvar - O computador pergunta com que nome o arquivo de caracteres deve ser salvo. Depois de entrar com o nome, aperte as teclas PLAY e RECORD do gravador e a tecla RETURN do computador.
  • Carregar - O computador pergunta qual o nome do arquivo a ser carregado. Se o usuário se limita a apertar a tecla RETURN, o computador carrega o primeiro arquivo que encontrar.

Nota: Só use as opções "Salvar" e "Carregar" se você estiver trabalhando com fita cassete.

(OC) A despeito do programa afimar categoricamente que não existem bugs nos programas, alguns bugs foram encontrados, principalmente neste programa. Corrigi os que pude notar no uso normal, alguns ainda permanecem, porém são contornáveis, como a função de entrada de caracteres que é relativamente problemática. A função para salvar/ler bancos também sofre do problema de ter sido feita pensando apenas na interface de cassete, usando áreas vitais para quem tem interface de disco, o que pode inclusive corromper o disco. As mesmas foram deslocadas para endereços mais seguros.

livjogos 0062 livjogos 0063
Referência de Listagem
Listagem Única caract.bas

Gerador de Figuras

Artigo Original: Bootsy, Digitação: Wilson e William Pilon

livjogos-geracafigura

A Sua Paleta Eletrônica

Aqui está um programa utilitário que o ajudará a dar vazão ao seu talento artístico. O programa funciona no modo SCREEN 2, que é o modo gráfico de alta resolução, e oferece opções que permitem desenhar figuras na tela do MSX com toda facilidade.

O programa começa por mostrar na tela uma caneta simulada. Qualquer movimento da "caneta", executado com o auxílio do joystick ou das teclas de controle do cursor, produz uma linha na tela. Apertando uma vez o botão de tiro ou a barra de espaço, o símbolo da caneta é substituído pelo de uma borracha. A "borracha" pode ser usada para apagar qualquer desenho presente na tela. Quando o botão de tiro é apertado uma segunda vez, o símbolo da borracha é substituído por uma cruz. Isto indica que o cursor pode ser movimentado sem modificar o desenho. Quando o botão de tiro é apertado uma terceira vez a cruz é substituída pelo símbolo da caneta. Assim, para selecionar qualquer um dos trê modos, basta apertar o botão de tiro (ou a barra de espaço) um número apropriado de vezes.

Enquanto o programa está no modo de movimento (símbolo em forma de cruz), várias opções adicionais podem ser usadas. Experimente usar a tecla C para desenhar um círculo, R para desenhar um retângulo, L par atraçar uma reta e INSERT para colorir o interior de uma figura. Nos três primeiros casos, aperte a tecla HOME para indicar o ponto inicial da reta, o centro do círculo ou um dos vértices do retângulo, em seguida, movimente o cursor para outra posição, de modo a indicar o ponto final da reta, um dos pontos da circunferéncia do círculo, o vértice oposto do retângulo e aperte a tecla C, B ou L, dependendo da opção escolhida. Para colorir uma figura, posicione o cursor no interior da figura (que deve ser fechadam, caso contrario a cor "vazará" para o resto da tela) e aperte a tecla INSERT.

A qualquer momento é mossível mudar a cor da "caneta" usando a tecla RETURN. Cada vez que a tecla é apertada, o computador seleciona uma cor diferente, que é indicada pela cor do cursor.

Para escolher a cor do fundo, aperte SELECT.

Para salvar o desenho em fita, aperte GRAPH-S (antes disso você deve apertar as teclas PLAY e RECORD do gravador).

Para carregar um desenho na memória do computador, paerte GRAPH-C e depois aperte a tecla PLAY do gravador (o computador carregará a primeira figura que encontrar na fita).

Para apagar a tela, aperte DELETE duas vezes.

Com um pouco de prática, logo você estará criando belas figuras na tela do seu MSX.

Nota: Só use as opções para salvar e carregar desenhos se você estiver trabalhando com fita cassete.

(OC) O programa figura.bas está extamente como o original. No programa figurx.bas eu ajustei alguns pequenos bugs, como o não funcionamento da tecla GRAPH+C. Aproveitei para mudar o endereçamento temporário das telas antes de salvá-las, desta forma, o programa salva e carrega sem problemas em micros com unidade de disco.

livjogos 0060 livjogos 0061
Referência de Listagem
Listagem Original figura.bas
Listagem Melhorada figurx.bas

Monitor de Memória

Artigo Original: Bootsy, Digitação: Wilson e William Pilon

livjogos-geramemoria

Revelando os Segredos Mais íntimos do Seu Micro

Este programa utilitário o ajudará a conhecer melhor a memória do MSX. O programa permite observar as rotinas da ROM ou qualquer programa que esteja caregado na RAM. O conteúdo da memória pode ser também modificado ou salvo em fita.

Uso dos Comandos

Observar a Memória - O computador pede os endereços inicial e final, que devem ser fornecidos em hexadecimal. O conteúdo da memória é então mostrado na tela, em blocos de dez posições. Para passar para o bloco seguinte, basta apertar a barra de espaço.

Teste de Soma - O computador pede os endereços inicial e final e calcula a soma dos endereços e dos conteúdos de todas as memórias espeficicadas. Esta opção é usada para verificar se houve algum erro durante a digitação de um programa cuja listagem inclua o valor desta soma.

Modificar a Memória - O computador pede os endereços inicial e final e mostra o conteúdo do primeiro endereço. Para mudar o conteúdo da memória, basta entrar com um número e apertar RETURN. Se o número não for permitido, o computador indicará este fato e não fará nenhuma modificação. Para deixar o conteúdo da memória como está e passar para o endereço seguinte, basta apertar a tecla RETURN. Atenção: A modificação da memória deve ser feita com muita cautela, pois todo o funcionamento do computador pode ser afetado.

Salvar em fita - O computador pede os endereços inicial e final e o nome do arquivo. A operação só é executada quando o usuário aperta a tecla RETURN. Antes de escolher esta opção as teclas RECORD e PLAY do gravador devem ser apertadas.

Carregar da Fita - Escolha esta opção e aperte a tecla PLAY do gravador. O computador carregará o primeiro arquivo que encontrar.

Para desistir de qualquer opção, aperte CTRL-D.

Nota: Só use as opções para salvar e carregar dados da memória se você estiver trabalhando com fita cassete.

(OC) Deixei o programa exatamente como o original, corrigindo apenas um ponto onde ao invés de CTRL-D, o programa esperava CTRL-Q para sair da opção e um outro ponto na opção de carregamento de arquivo, que no livro saiu como "Observar memoria" repetido. Também as rotinas de cassete não foram alteradas, por isso a seguinte observação se faz necessária: Se você informar um nome, e tiver uma interface de disco, o arquivo será salvo/lido do disco, se você não possuir interface de disco, o cassete será usado. Se tiver interface de disco e desejar gravar em cassete, basta preceder o nome do arquivo com "CAS:". Independente de onde o arquivo será salvo/lido, a mensagem para pressionar PLAY/REC será mostrada.

livjogos 0059 livjogos 0058
Referência de Listagem
Listagem Única monit.bas

Observações Finais

Artigo Original: Jim, Digitação Wilson e William Pilon.

Quando nos dispusemos a escreve este livro, fizemos questão de incluir apenas jogos que fossem realmente interessantes. Isto naturalmente levou a programas compridos, em que a probabilidade de cometer erros de digitação é relativamente elevada e esses erros, quando ocorrem, não são fáceis de localizar. Os parágrafos seguintes foram escritos com o objetivo de ajudá-lo caso um dos programas, depois de carregado, não funcione ou funcione de forma inesperada.

Conselhos Gerais

  1. Peça a um amigo para verificar a listagem com você. Leia a listagem do livro em voz alta e copare-a com a que aparece na tela do computador.
  2. Não se esqueça d eque, no formato SCREEN 0, deve haver uma correspondência direta entre as listagens, linha por linha
  3. Cuidado para não confundir a letra I com o algarismo 1.
  4. Cuidado para não trocar as letras maiúsculas por minúsculas e vice-versa.
  5. Cuidado para não trocar ponto e vírgula por dois pontos e vice-versa.
  6. Verifique se o número de espaçoes está correto, usando as linhas vizinhas como referência para contar os espaços.
  7. Verifique novamente os números das linhas. Não confunda a continuação de uma linha com uma linha nova.
  8. Verifique de novo as linhas de dados. É muito fácil pular um número em uma linha de dados. Para ter certeza de que isto não ocorreu, conte o número de vírgulas e compare-o com o da listagem.
  9. Verifique se não se esqueceu de digitar nenhum sinal de aspas.
  10. Será que existe mesmo um erro no programa? Torne a ler as instruções do jogo. Muitas vezes, depois que você entra com um dado pelo teclado, o programa não faz nada até a tecla RETURN ser apertada.

Outras Observações

  1. Os três programas de jogos de dados (Corrida de Dados, Olhos de Cobra e Craps) só funcionam corretamente quando estão simultaneamente presentes na memória do computador. Por essa razão, é aconselhável salvá-los em fita como se fossem um únic programa.
  2. Alguns programas param de funcionar quando você entra com um dado diferente do previsto, como uma letra em lugar de um número. Seria possível prever todas as respostas "tolas" e colocar mensagens apropriadas no programa, mas isso aumentaria consideravelmente o tamanho das listagens. Ao escrevermos os jogos, partimos do princípio de que o usuário não estaria a fim de "derrubar" o programa! Assim sendo, se ocorre um erro logo após entrar com um dado, leia de novo as instruções do jogo para ver se você não está entrando com um dado inapropriado.
  3. Todos os programas, com exceção de Senha, funcionam igualmente bem em receptores coloridos ou preto e branco. Para jogar Senha em receptores preto e branco, entre com S quando o computador perguntar "Cores ou Símbolos (C/S)?". Neste caso, as cores do jogo serão substituídas por símbolos.
  4. Antes de carregar um programa novo no computador, desligue-o e torne a ligá-lo. Com isso, evitará ue ocorra um erro se o programa anterior tiver modificado o conteúdo de alguma memória da parte de controle do computador.

Como Localizar Erros

Se o programa continua apresentando erro mesmo depois de você seguir as diretrizes acima, o jeito é arregaçar as mangas e partir para uma busca mais direta. Eis alguns conselhos úteis:

  1. Se uma mensagem de erro indica que o erro ocorreu em uma determinada linha mas a linha corresponde exatamente à listagem original, o engao pode estar na linha em que é calculado o valor de uma das variáveis usadas na linha em que o erro ocorre. Verifique todas essas linhas.
  2. Se uma mensagem de erro for mais específica, como "Índice fora do limite" (índice de uma matriz maior que o permitido) ou "Função ilegal" (parâmetro incorreto de uma função), procure localizar a variável responsável pelo erro. Em caso de dúvida, use comandos diretos, como "PRINT A", "PRINT B", etc., para ver na tela qual era o valor das variáveis suspeitas no momento em que ocorreu o erro.
  3. Acompanhe o fluxo lógico das instruções do programa. O comando "TRON" mostra a ordem em que as instruções são executadas, revelando assim qualquer erro de endereçamento em instruções como "GOTO", "GOSUB", etc..
  4. Trabalhe de forma metódica. Examine cada parte do programa. Interrompa a execução quantas vezes for necessário, incluindo instruções "STOP" em pontos estratégicos do programa. Aproveite para observar os valores intermediários das variáveis, usando o comando "PRINT" na forma direta.
  5. Suprima temporariamente algumas linhas do programa acrescentando "REM" no início da linha. Verifique de que forma a execução é afetada.
  6. Torne a digitar as linhas suspeitas! Em alguns casos, a linha aparece corretamente nat ela, mas foi guardada de forma truncada na memória do computador.
  7. Use as instruções "ERROR" e "ON ERROR GOTO", da forma descrita no manual do computador.
  8. Vá para a cama. Depois de uma boa noite de sono, será bem mais fácil localizar o erro!

Apêndice 1: Gráficos para desenhar Sprites e Caracteres

 


 

livjogos-malhagraficos

Definições

livjogos-malhacaracter livjogos-malhacaracter livjogos-malhacaracter
livjogos-malhacaracter livjogos-malhacaracter livjogos-malhacaracter

 


 

Use uma cópia impressa destes diagramas para poder definir seus sprites e/ou caracteres.


Apêndice 2: Gráfico das Coordenadas da Tela

 


 

livjogos-malhatexto
livjogos-malhatexto

 

SCREEN 0 - Texto, 40x24 caracteres

SCREEN 1 - Texto, 32x24 caracteres

SCREEN 2 - Gráficos de alta resolução, 256x192 pontos

SCREEN 3 - Gráricos de baixa resolução, 64x48 pontos

 


 

Use uma cópia impressa destes diagramas para poder definir seus sprites e/ou caracteres.


Apêndice 3: Mapa da Memória do MSX

  Área de Trabalho do Basic &HFFFF

Área dos

Programas

do Usuário

Controle de E/S  

Armazenamento de Strings

Inicialmente 200, use CLEAR

para mudar

 
Pilha &HF380
Área Livre  
Armazenamento de Matrizes  
Armazenamento de Variáveis  
Texto de programas em BASIC &H8000
BASIC MSX (32 Kb) &H0000

(OC) A área de BASIC MSX, segundo o livro, também compreende a área de ROM/BIOS.


Apêndice 4: Tabela de Cores do MSX

Cores
0 Transparente
1 Preto
2 Verde
3 Verde claro
4 Azul escuro
5 Azul claro
6 Vermelho escuro
7 Azul celeste
8 Vermelho
9 Vermelho claro
10 Amarelo
11 Amarelo claro
12 Verde escuro
13 Roxo
14 Cinza
15 Branco

livjogos 0029


Downloads

  • livjogos.dsk: Disco contendo os programas do livro além de algumas ferramentas (superx, megasm, msxdebug, bin2com).
  • livjogos.cas: Cassete contendo os programas do livro.
  • livjogosasc.zip: Arquivo contendo listagens dos programas do livro.