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:
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.
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.