Batch Script é uma linguagem básica de scripts que roda em qualquer sistema operacional Windows ou MS-DOS. Suas funções são baseadas nos ...
Batch Script é uma linguagem básica de scripts que roda em qualquer sistema operacional Windows ou MS-DOS. Suas funções são baseadas nos comandos para as linhas de comando destes sistemas operacionais. Além disso, é algo muito legal. Criar um jogo com este script não é algo tão difícil, tudo o que é preciso é um pouco de tempo e criatividade.
Atenção: para que este projeto funcione corretamente, você precisará do 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 compatíveis com os scripts em batch modernos.
Deixe seu comentário se você conseguiu, se não pergunte o que deu errado. Que nos vamos te ajudar.
Atenção: para que este projeto funcione corretamente, você precisará do 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 compatíveis com os scripts em batch modernos.
Passos
1 Decida qual jogo deseja desenvolver. Antes de optar por criar um jogo de tiros e ação ou um jogo no qual você utiliza o mouse para apntar e clicar em algo, saiba que mesmo na versão 8 do MS-DOS, o batch script possui sérias limitações quanto às suas capacidades. Você não será capaz de criar mais do que um jogo baseado em texto. Pode ser um quiz (jogo de perguntas e respostas) ou um jogo de cenário, mas 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 texto.
- Aprenda sobre o script. Aprender sobre o script em si não é tão difícil - você pode inclusive aprender simplesmente observando outro programa. Para aprender qualquer linguagem de script, é necessário conhecer alguns comandos básicos da linha de comandos de seu computador. Os comandos dos quais você precisará são:
echo
color
title
goto
if
set
labeling (não é um comando, mas a forma de definir labels ou rótulos)
- 3Aprenda como utilizar os comandos acima.
- O echo (ecoar) é um comando utilizado para imprimir algum texto no console. Abaixo, o comando echo imprime o texto "Olá, Mundo!".
echo Olá, Mundo!
- O comando color (cor) é utilizado para mudar a cor do texto na linha de 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 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 comando title (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 comando goto (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 comando if (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 comando set é 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 label antes 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
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?
- 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 label antes 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:
- 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.
- O echo (ecoar) é um comando utilizado para imprimir algum texto no console. Abaixo, o comando echo imprime o texto "Olá, Mundo!".
- 4Comece 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 comando REM 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 - 5Trabalhe 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.
- 6A 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:
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.
- É 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:
- 7Trabalhe 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 comando REM 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.
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 à tela principal.
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 carro.
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.
- 8Crie 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 como VITORIA.txt no diretório onde se encontra o arquivo batch. Adicione 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 - 9O seu jogo deverá agora parecer com o código a seguir:
@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
: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 à tela principal.
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 carro.
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.
- 10Faç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
cls - 11Faç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.
- 12Crie 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 - 13Faç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 BrilhanteSe 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.
- Em outras palavras, se você deseja utilizar um fundo de branco brilhante e um texto preto:
Dicas
- 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.
COMENTÁRIOS