Como Criar um Simples Jogo de
Como Criar um Simples Jogo de
Computador Usando Scripts em Batch
Computador Usando Scripts em Batch
Batch Script é uma linguagem básica de scripts que roda
Batch Script é uma linguagem básica de scripts que roda
em qualquer
em qualquer
sistema operacional Windows ou MS-DOS. Suas
sistema operacional Windows ou MS-DOS. Suas
funções são baseadas nos
funções são baseadas nos
comandos para as linhas de
comandos para as linhas de
comando destes sistemas operacionais. Além
comando destes sistemas operacionais. Além
disso, é algo muito legal. Criar um jogo com este script não é algo tão difícil,
disso, é algo muito legal. Criar um jogo com este script não é algo tão difícil,
tudo o que é preciso é
tudo o que é preciso é
um pouco de tempo e criatividade.
um pouco de tempo e criatividade.
Atenção: para que e
Atenção: para que e
ste projeto funcione corre
ste projeto funcione corre
tamente, você precisa
tamente, você precisa
rá do
rá do
Windows 2000 ou alguma versão posterior, visto que ele não funcionará em
Windows 2000 ou alguma versão posterior, visto que ele não funcionará em
versões mais antigas do Windows ou MS-DOS. Versões mais antigas não são
versões mais antigas do Windows ou MS-DOS. Versões mais antigas não são
compatíveis com os scripts em
compatíveis com os scripts em
batch modernos.
batch modernos.
1
1
2
2
3
3
Decida qual jogo deseja desenvolver.
Decida qual jogo deseja desenvolver. Antes de optar por criar um jogo de tiros e Antes de optar por criar um jogo de tiros e ação ou um jogo no qual você utiliza o mouse para
ação ou um jogo no qual você utiliza o mouse para apntar e clicar em algo, saibaapntar e clicar em algo, saiba
que mesmo na versão 8 do MS-DOS, o
que mesmo na versão 8 do MS-DOS, o batch script possui sérias limitações quanto àsbatch script possui sérias limitações quanto às
suas capacidades. Você não se
suas capacidades. Você não será capaz de criar mais do que rá capaz de criar mais do que um jogo baseado emum jogo baseado em
texto. Pode ser um quiz (jogo d
texto. Pode ser um quiz (jogo de perguntas e respostas) ou um jogo de e perguntas e respostas) ou um jogo de cenário, mascenário, mas
você apenas terá textos. Quanto a possuir ou não gráficos em ASCII, dependerá
você apenas terá textos. Quanto a possuir ou não gráficos em ASCII, dependerá
apenas de você, mas o jogo continuará sendo inteiramente baseado em entrada de
apenas de você, mas o jogo continuará sendo inteiramente baseado em entrada de
texto.
texto. Anúncio
Anúncio
Aprenda sobre o script.
Aprenda sobre o script. Aprender sobre o script em si não Aprender sobre o script em si não é tão difícil - vocêé tão difícil - você pode inclusive aprender simplesmente observando outro programa. Para aprender
pode inclusive aprender simplesmente observando outro programa. Para aprender
qualquer linguagem de script, é
qualquer linguagem de script, é necessário conhecer alguns comandos básicos da linhanecessário conhecer alguns comandos básicos da linha
de comandos de seu
de comandos de seu computador. Os comandos dos quais você precisará são:computador. Os comandos dos quais você precisará são:
echo echo color color title title goto goto if if set set
labeling (não é um comando, mas a forma de definir labels ou
labeling (não é um comando, mas a forma de definir labels ou
rótulos)
rótulos)
Aprenda como utilizar os comandos acima.
Aprenda como utilizar os comandos acima. O
Oechoecho (ecoar) é um (ecoar) é um comando utilizado para imprimir algum texto no console.comando utilizado para imprimir algum texto no console. Abaixo, o comand
Abaixo, o comando echo imprime o texo echo imprime o texto "Olá, Mundo!".to "Olá, Mundo!".
echo
echo Olá, Mundo Olá, Mundo!! O comando
O comandocolor color (cor) é utilizado para mudar a (cor) é utilizado para mudar a cor do texto na linha decor do texto na linha de comando. Isto não é muito útil e provavelmente não deveria merecer sua
comando. Isto não é muito útil e provavelmente não deveria merecer sua
atenção até que você tivesse concluído o seu jogo em si, mas os resultados
atenção até que você tivesse concluído o seu jogo em si, mas os resultados
Passos
das mudanças de cor podem ser bem atraentes. As cores na linha de comandos do DOS são numeradas. Existe uma tabela com as cores e seus números no final deste artigo. O seguinte comando irá modificar a cor do texto para um plano de fundo preto e letras verdes.
color 02
O comandotitle (título) simplesmente modifica o nome da janela que aparece em sua barra de títulos, bem como na barra de tarefas, não sendo muito útil; porém, pode fazer com que o seu programa tenha um aspecto mais
profissional. Utilizando-o da seguinte forma, você poderá alterar o título da janela para "Programa Divertido".
title Programa Divertido
O comandogoto (vá para) é utilizado para ir para uma determinada parte do
programa. Você utilizará este comando para determinar o que acontecerá quando determinadas respostas forem escolhidas para as perguntas. Para utilizar o comando goto para ir ao label "ERRADO":
goto ERRADO
O comandoif (se) é utilizado para determinar o que irá acontecer caso um
determinado evento ocorra. Após a instrução if (if [algo]), um comando será executado a seguir. No caso da instrução if, se um determinado evento for verdadeiro, o comando em seguida será executado. Você estará utilizando esta instrução condicional para determinar qual comando goto deverá ser utilizado. Esta condição if será verdadeira se a entrada for igual a 12:
if %input%==12 (comando)
O comandoset é bem complicado, visto que pode ser utilizado de diversas
formas. Por hora, tudo o que você precisa saber sobre este comando é que poderá utilizá-lo para fazer com que o computador receba dados de entrada. Para fazer isso:
set /p input=(Pergunta)
Finalmente,labeling (rotulagem). O labeling pode ser utilizado para rotular ou
nomear certas partes do programa de forma que você possa utilizar o comando
goto. Você pode nomear certas partes do programa da forma como desejar,
contanto que o nome utilizado não seja um comando. Para rotular ou utilizar um label em uma seção "main" (principal), digite o seguinte:
:MAIN
Seções rotuladas (utilizando-se labels) incluem o label em si e todo o código que a segue até que um outro label seja apresentado ou o arquivo chegue ao fim. Certifique-se de posicionar seu labelantes da
seção a ser rotulada ou nomeada e outro label em seguida, de forma que o computador entenda qual seção está sendo rotulada com um label. Confira o exemplo a seguir:
@echo off :LABEL1
echo ESTE É UM TESTE DE TEXTO
set/p input=ESTA É UM TESTE DE ENTRADA_
if %input%==1 goto LABEL1
goto LABEL2 :LABEL2
4
5
6
echo TESTE
A primeira linha do programa acima pode ser confusa para você. Esta linha desabilita o display de códigos dentro do arquivo, de forma que não pareça que tudo foi digitado em um console. A partir de agora temos o que realmente importa, onde determinaremos o que o programa de fato fará (ignore a primeira linha). O programa apresentará o texto "ESTE É UM TESTE DE TEXTO" e depois lhe pedirá que entre com alguma informação. Se a entrada for "1" (significando que você digitou 1), o programa irá lhe retornar para o LABEL1 e executará os comandos abaixo deste label novamente. Se a condição da instrução if não for atendida, irá imprimir o texto "TESTE" no console. Copie o programa acima em duas janelas distintas do bloco de notas. Em uma delas, salve o arquivo com o nome de TESTE1 em qualquer diretório e execute-o. Perceba como o texto é apresentado. Na segunda janela do bloco de notas, apague a primeira linha, salve o arquivo como TESTE2 e execute-o. Percebe a
diferença?
Uma vez que você tenha um entendimento geral sobre como os comandos acima podem ser utilizados, você pode avançar para o próximo passo.
Comece a criar o script de seu jogo. Para iniciantes, sugere-se que utilizem o
bloco de notas, mas se você quiser utilizar o MS DOS EDIT, sinta-se livre para tal. Também é sugerido para um iniciante que inicie com um jogo básico de quiz (perguntas e respostas), e é isso que este artigo lhe ensinará a fazer. Lembre-se de iniciar
desabilitando o echo. Em seguida, apresente o seu jogo com algum texto através do comando echo; depois, utilize o comando set para permitir alguma entrada que será utilizada com o comando goto. Isso pode parecer confuso, portanto observe abaixo (obs: o comandoREM significa uma linha de comentário no código, ou seja, uma linha apenas para explicar o que está sendo feito para o programador, sem executar nenhuma operação):
@echo off :MAIN echo.
REM (Isto apenas cria uma linha vazia.)
echo.
echo.
echo Bem vindo ao meu jogo básico de perguntas.
echo.
echo Para iniciar o jogo, digite A e pressione ENTER.
echo Para ver as instruções do jogo, digite B e pressione ENTER.
echo Para sair, digite C e pressione ENTER.
set /p input=COMANDO?
if %input%==A goto JOGO
if %input%==B goto INST
if %input%==C exit
Trabalhe na página de instruções. Neste ponto, você deve salvar o seu arquivo
(salve-o como algumacoisa.bat); em seguida, ponha-o em um diretório que você tenha criado para o jogo. Após salvá-lo, execute-o e certifique-se de que esteja funcionando.
A partir deste momento, você passará a ter múltiplos arquivos por jogo (especialmente se quiser ter gráficos ASCII). Você pode pegar o batch script para imprimir o conteúdo de qualquer arquivo na tela com o comando type. O comando a seguir irá imprimir na tela o conteúdo do arquivo TESTE.txt:
7
type teste.txt
É importante lembrar-se de incluir a extensão do arquivo, ou o comando poderá não funcionar apropriadamente. Crie uma página de instruções no bloco de notas. Nela deverá constar algo como:
Este é um jogo básico de perguntas. Quando lhe for feita uma pergunta, lhe serão apresentadas algumas respostas das quais você deverá escolher uma de acordo com suas letras A, B, C ou D. Faça sua escolha e pressione ENTER. Certifique-se de digitar a letra da resposta em LETRA MAIÚSCULA !
Salve este arquivo como INST.txt no diretório onde se encontra o arquivo batch criado anteriormente; em seguida, faça com que o seu jogo imprima o texto no console através da página de instruções.
@echo off :MAIN echo.
echo.
echo.
echo Bem vindo ao meu jogo básico de perguntas.
echo.
echo Para iniciar o jogo, digite A e pressione ENTER.
echo Para ver as instruções do jogo, digite B e pressione ENTER
echo Para sair, digite C e pressione ENTER.
set /p input=COMANDO?
if %input%==A goto JOGO
if %input%==B goto INST
if %input%==C exit
:INST
type INST.txt
echo.
echo.
echo Para iniciar o jogo, digite A e pressione ENTER.
echo Para voltar à tela principal, digite B e pressione ENTER.
echo Para sair, digite C e pressione ENTER.
set /p input=COMANDO?
if %input%==A goto JOGO
if %input%==B goto MAIN
if %input%==C exit
Execute o programa e certifique-se de que esteja funcionando.
Trabalhe no conteúdo do jogo em si. É aqui que a maior parte de sua
criatividade/pesquisa, trabalho e tempo serão gastos enquanto estiver trabalhando neste jogo, bem como onde a maior parte do script do jogo deveria estar. Deverá haver um local para onde ir quando você receber uma resposta errada e um local para onde ir quando receber uma resposta correta. O código abaixo possui 3 perguntas básicas sobre o exterior de um carro. Você poderá substituí-las pelo que desejar. (Obs: o comandoREM significa uma linha de comentário no código, ou seja, uma linha apenas para explicar o que está sendo feito para o programador, sem executar nenhuma operação.) @echo off :MAIN echo. echo. echo.
echo Bem vindo ao meu jogo básico de perguntas.
echo.
echo Para iniciar o jogo, digite A e pressione ENTER.
echo Para ver as instruções do jogo, digite B e pressione ENTER.
echo Para sair, digite C e pressione ENTER.
8
9
if %input%==A goto JOGO
if %input%==B goto INST
if %input%==C exit
:INST
type INST.txt
echo.
echo.
echo Para iniciar o jogo, digite A e pressione ENTER.
echo Para voltar à tela principal, digite B e pressione ENTER.
echo Para sair, digite C e pressione ENTER.
set /p input=COMANDO?
if %input%==A goto JOGO
if %input%==B goto MAIN
if %input%==C exit
:JOGO
echo Na maioria dos carros, o motor está localizado sob o...
echo A. Porta-malas
echo B. Capô echo C. Teto echo D. Roda set /p input=RESPOSTA? if %input%==B goto 2 goto ERRADO :ERRADO
echo Sinto muito, está incorreto. Pressione qualquer tecla para voltar
pause
REM (isto irá pausar o programa até que alguma tecla seja digitada)
goto MAIN :2
echo As luzes traseiras estão localizadas na extremidade XXXXXXXX do c
echo A. Traseira
echo B. Dianteira echo C. Esquerda echo D. Direita set /p input=RESPOSTA? if %input%==A goto 3 goto ERRADO :3
echo O que fazem os limpadores de pára-brisa?
echo A. Servem de lastro em carros submersíveis
echo B. Retiram o pó do carro usando pequenos ventiladores
echo C. Limpam o pára-brisa da água ou sujeira
echo D. Serve como decoração
set/p input=RESPOSTA?
if %input%==C goto WIN
goto ERRADO
Execute o programa e certifique-se de que esteja funcionando.
Crie uma tela de vitória. Criar uma tela de vitória é tão simples quanto a tela de instruções. Crie um documento de texto com uma frase para quem vencer e salve-o csalve-omsalve-o VITORIA.txt nsalve-o diretórisalve-o salve-onde se encsalve-ontra salve-o arquivsalve-o batch. Adicisalve-one as
seguintes linhas ao final de seu jogo para inserir a tela de vitória:
:VITORIA
type VITORIA.txt
echo.
echo.
set/p input=RETORNAR À TELA INICIAL? (S/N)?
if %input%==S goto MAIN
if %input%==N exit
O seu jogo deverá agora parecer com o código a seguir:
@echo off :MAIN echo.
10
echo.
echo Bem vindo ao meu jogo básico de perguntas.
echo.
echo Para iniciar o jogo, digite A e pressione ENTER.
echo Para ver as instruções do jogo, digite B e pressione ENTER.
echo Para sair, digite C e pressione ENTER.
set /p input=COMANDO?
if %input%==A goto JOGO
if %input%==B goto INST
if %input%==C exit
:INST
type INST.txt
echo.
echo.
echo Para iniciar o jogo, digite A e pressione ENTER.
echo Para voltar à tela principal, digite B e pressione ENTER.
echo Para sair, digite C e pressione ENTER.
set /p input=COMANDO?
if %input%==A goto JOGO
if %input%==B goto MAIN
if %input%==C exit
:JOGO
echo Na maioria dos carros, o motor está localizado sob o...
echo A. Porta-malas
echo B. Capô echo C. Teto echo D. Roda set /p input=RESPOSTA? if %input%==B goto 2 goto ERRADO :ERRADO
echo Sinto muito, está incorreto. Pressione qualquer tecla para voltar
pause
REM (isto irá pausar o programa até que alguma tecla seja digitada)
goto MAIN :2
echo As luzes traseiras estão localizadas na extremidade XXXXXXXX do c
echo A. Traseira
echo B. Dianteira echo C. Esquerda echo D. Direita set /p input=RESPOSTA? if %input%==A goto 3 goto ERRADO :3
echo O que fazem os limpadores de pára-brisa?
echo A. Servem de lastro em carros submersíveis
echo B. Retiram o pó do carro usando pequenos ventiladores
echo C. Limpam o pára-brisa da água ou sujeira
echo D. Serve como decoração
set/p input=RESPOSTA?
if %input%==C goto WIN
goto ERRADO :VITORIA
type VITORIA.txt
echo.
echo.
set/p input=RETORNAR À TELA INICIAL? (S/N)??
if %input%==S goto MAIN
if %input%==N exit
Execute o programa e certifique-se de que esteja funcionando.
Faça os ajustes em seu arquivo. Comece indo em cada label e colocando o
comando cls após os mesmos. Isto limpará a tela a cada label de forma que você não acabe com uma tela cheia de informações desnecessárias.
:MAIN
11
12
13
Faça correções gramaticais onde for necessário. Se quiser, faça com que todas as respostas na lista sejam frases completas.Evite abreviações nos comandos echo do batch script! Você também deve evitar o uso de barras e o uso de
sinais de maior/menor que, asteriscos, símbolos de porcentagem e qualquer outro símbolo estranho. Estes símbolos irão criar um erro de sintaxe que fará com que o programa pare, fique lento ou feche inesperadamente.
Crie gráficos para o jogo caso deseje. Gere arte em ASCII em um arquivo de texto separado e utilize o comando type para apresentar o seu conteúdo no programa:
:3
cls
type LIMPADORASCII.txt
echo O que fazem os limpadores de pára-brisa?
echo A. Servem de lastro em carros submersíveis
echo B. Retiram o pó do carro usando pequenos ventiladores
echo C. Limpam o pára-brisa da água ou sujeira
echo D. Serve como decoração
set/p input=RESPOSTA?
if %input%==C goto VITORIA
goto ERRADO
Faça a correção de quaisquer erros de digitação que você encontre.
Pense em suas próprias coisas a serem corrigidas. Em seguida, adicione cores com o comando color. Recomenda-se que você o posicione no início do código, de forma que o programa inteiro tenha esta cor. Aqui vai a explicação de como utilizá-las diretamente da linha de comandos:
Define as cores de frente e de fundo padrões do console. COLOR [attr]
attr Especifica o atributo da cor de saída do console
Atributos de cor são especialmente compostos de DOIS dígitos
hexadecimais -- o primeiro corresponde à cor de fundo; o segundo à cor de frente (caracteres). Cada dígito pode receber qualquer um dos
seguintes valores:
0 = Preto 8 = Cinza 1 = Azul 9 = Azul Claro 2 = Verde A = Verde Claro 3 = Azul Água B = Azul Água Claro 4 = Vermelho C = Vermelho Claro 5 = Roxo D = Roxo Claro 6 = Amarelo E = Amarelo Claro 7 = Branco F = Branco Brilhante
Se nenhum argumento for passado, este comando passará a utilizar as cores de quando o CMD.EXE foi inciado. Este valor pode vir tanto da janela de console atual, quanto do switch /T da linha de comandos ou mesmo do valor do registro DefaultColor (Cor Padrão).
Em outras palavras, se você deseja utilizar um fundo de branco brilhante e um texto preto: @echo off color f0 :MAIN cls echo.
14
Parabéns, você acaba de criar um jogo simples de computador com batch script!Anúncio
Salve frequentemente seu arquivo. Você poderá arrepender-se se não
o fizer.
Tente criar tantas versões do jogo quanto possível, de forma que você
possa compará-las e ver se existe algum erro. Nâo se preocupe sobre
quanto espaço isso irá consumir, pois arquivos batch são muito
pequenos.
Você pode definir variáveis utilizando "set nomedavariavel=valor" ou
solicitar que o usuário insira um valor e armazene-o como uma
variável, onde ao invés de "set /p input=blahblahblah" você utilizaria
"set /p nomedavariavel=blahblahblah".
Batch é divertido, mas não foi feito para jogos. Se você deseja avançar
para algo um pouco mais complexo, porém muito mais poderoso,
experimente a linguagem de programação Python.
Anúncio
NUNCA insira nenhum comando de MS-DOS no comando echo, visto
que eles serão executados. Lembre-se de que tudo o que for
apresentado pela linha de comando é um echo!
NUNCA insira qualquer comando de MS-DOS nos arquivos de texto
que serão apresentados no console do programa. Arquivos de texto
resolvem alguns problemas, tais como as barras e asteriscos, mas
comandos neles continuarão sendo interpretados pelo sistema.
Muitas vezes foi dito que é ilegal enviar arquivos batch pela internet.
De maneira alguma isto é verdade, mas esteja ciente do fato de que
você pode ter problemas ao tentar enviar arquivos maliciosos pela
internet (ex: arquivos batch que danifiquem computadores, deletem
arquivos vitais de sistemas, etc.). Eles não são chamados de vírus,
mas continuam sendo prejudiciais e você pode ter sérios problemas
por conta deles.
Criar a Chuva de Códigos de Matrix com o Prompt de Comando
Escrever um Arquivo em Lote
Avisos
WikiHows Relacionados Dicas
Esta página foi acessada 17 760 vezes.
Artigo em Destaque Categorias: Artigos em Destaque | Programação | Desenvolvimento de Jogos
Últimas edições feitas por: Gustavo Henrique dos Santos, Sabrina L. Furtado, Rafael Bemerguy
Noutras línguas:
English: How to Build a Simple Computer Game Using Batch Script
Anúncio