terça-feira, 20 de novembro de 2012

Laço Principal

O código que contém o laço principal do Mina 2 está no fim do arquivo MINA2.PAS. O seu conteúdo é o seguinte:
begin
  clrscr;           {1ª parte}
  randomize;
  assign(frec,'recordes.mi2');
  verificarecordes;

  repeat            {2ª parte}
   sair:=0;
   cont:=0;
   menu;
   pegadados;
   tela;

   while sair = 0 do    {3ª parte}
    begin
      jogo;
      controle;
    end;

  until 1=0;
end.

Para facilitar a explicação, dividi este código em 3 partes.

A 1ª parte contém algumas procedures de inicialização. Segue uma breve descrição de cada uma delas:
  • clrscr: Limpa a tela. 
  • randomize: Inicializa o gerador de números aleatórios.  
  • assign(frec,'recordes.mi2'): Associa uma variável a um arquivo externo chamado recordes.mi2. 
  • verificarecordes: Verifica a existência do arquivo com Recordes e carrega no programa. 

A 2ª parte contém um laço infinito (repeat / until 1=0). Este laço contém todo o fluxo do jogo, que se inicia no Menu. A partir do Menu o jogador pode ir para as telas de Instruções e de Recordes, ou pode iniciar o jogo. O encerramento do programa também é feito a partir do Menu principal.

A procedure "pegadados" é usada para permitir que o jogador especifique alguns dados para o jogo como seu nome, número da fase e velocidade. A procedure "tela" desenha na tela a fase que foi escolhida pelo jogador.

A 3ª parte contém um laço while relacionado a execução do jogo. Quando o tempo do jogo acaba, a variável "sair" recebe o valor 1 fazendo com que o programa volte para o Menu principal.

A imagem abaixo mostra a ordem de execução das diversas procedures do Mina 2.