terça-feira, 27 de novembro de 2012

Procedure pegadados


A procedure pegadados é executada antes de iniciar uma partida do Mina 2. Através desta procedure é possível especificar os nomes dos jogadores, o número da fase, a velocidade do jogo e a quantidade de bolas. Estas informações são guardadas em variáveis que serão acessadas em outras procedures.

O código completo da procedure está abaixo.
procedure pegadados;
var resp1:char;
    code,ind:integer;
    resplong:string;

begin
    apagatela;
    for ind:= 1 to qjog do
      begin
        gotoxy(5,3+(2*ind));
        write('Digite o NOME do jogador ');
        if qjog=2 then
         begin
           if ind = 1 then write('da DIREITA ');
           if ind = 2 then write('da ESQUERDA ');
         end;
        write('(max. 10 letras) : ');
        readln(resplong);
        extrainfo[ind].nome:=copy(resplong,1,10);
      end;

    repeat
      gotoxy(5,9);
      write('Digite o N§ da FASE (1 a 5) : ');
      readln(fase);
    until (fase>=1) and (fase<=5);

    repeat
      gotoxy(5,11);
      write('Digite o N§ da VELOCIDADE (1 a 5) : ');
      readln(vel);
    until (vel>=1) and (vel<=5);

    repeat
      gotoxy(5,13);
      write('Digite o N§ de BOLAS (0 a 8) : ');
      readln(qbola);
    until (qbola>=0) and (qbola<=8);

    espera:=35-(5*vel);
    tempo:=49+(10*vel);
    pontoobj:=vel+qbola;
end;

A variável "qjog" contém o número de jogadores. Ela é preenchida na procedure menu de acordo com a opção selecionada.

Os nomes dos jogadores são armazenados na variável extrainfo cuja definição é feita da seguinte forma:
extrainfo: array[1..2] of tiporecorde;

O "tiporecorde" é um novo tipo definido no início do programa para armazenar o nome e a pontuação de um jogador.

As demais informações são guardadas nas seguintes variáveis:
  • fase: Número da fase.
  • vel: Velocidade do jogo
  • qbola: Número de bolas na fase. 

A partir dessas variáveis outras são calculadas:
  • espera: Tempo de pausa em milisegundos de cada quadro do jogo. Quanto maior a velocidade menor será o valor de "espera".
  • tempo: Tempo de duração de uma partida do Mina 2. Quanto maior a velocidade maior será o valor de "tempo".
  • pontoobj: Pontos que o jogador irá ganhar ao pegar um objeto do jogo. Seu valor é igual a soma das variáveis "vel" e "qbola".