O código fonte em Pascal do Mina 2 está no arquivo MINA2.PAS. Logo no começo do arquivo temos as definições das variáveis e constantes utilizadas no jogo Mina 2 que são as seguintes:
program MINA2;
uses crt,dos;
const CI1 = 327; {setas}
BA1 = 335;
ES1 = 330;
DI1 = 332;
CI2 = 87; {w, a, s, d}
BA2 = 83;
ES2 = 65;
DI2 = 68;
PA = 80;
ESC = 27;
ENT = 13;
QM = 5; {qt de minas}
QF = 5; {qt de fases}
altura = 17;
largura = 50;
diflin = 6;
difcol = 15;
type
geral = record
col,lin,cara,cor,direcao:integer;
end;
tiporecorde = record
nome:string[10];
score:integer;
end;
var
mina: array[1..QM] of geral;
bola: array[1..8] of geral;
jog,obj: array[1..2] of geral;
extrainfo: array[1..2] of tiporecorde;
recordes: array[1..QF] of tiporecorde;
mapa: array[1..altura,1..largura] of integer;
frec: file of tiporecorde;
i,j,qjog,qbola,vel,fase,espera,tecla,cont: integer;
sair,pontoobj,tempo: integer;
Vamos começar analisando a variável "mapa" que é responsável por representar a área do jogo.
A definição da variável "mapa" é feita da seguinte forma:
mapa: array[1..altura,1..largura] of integer;
Isto significa que "mapa" é uma matriz cujas dimensões são definidas pelas constantes "altura" e "largura". A constante "altura" está definida com o valor 17 e a constante "largura" com o valor 50. Cada posição desta matriz pode guardar um valor inteiro. No Mina 2, cada posição da variável "mapa" só guarda 0 ou 1, sendo que o valor 1 significa que existe um bloco nesta posição.
A imagem abaixo mostra a área de jogo do Mina 2. Coloquei uma grade por cima da imagem para que fique fácil de visualizar como a matriz representa a imagem. Cada posição da grade equivale a uma posição da matriz.
Agora vamos analisar as variáveis que representam a imagem dos jogadores e dos objetos que precisam ser coletados. A definição é feita desta forma:
As variáveis "jog" e "obj" são do mesmo tipo, que consiste em um vetor de duas posições do tipo "geral". Cada posição do vetor representa um jogador.
Eu declarei o tipo "geral" usando o registro do Pascal para agrupar diversas variáveis comuns que são usados por vários itens no jogo Mina 2. A declaração foi feita desta forma:
Como exemplo de uso destas variáveis, o código abaixo define que o objeto que deve ser pego pelo 2º jogador irá aparecer na posição (linha: 10, coluna: 10) da área do jogo:
As demais variáveis e constantes serão analisadas em outros artigos de acordo com o uso delas.
jog,obj: array[1..2] of geral;
As variáveis "jog" e "obj" são do mesmo tipo, que consiste em um vetor de duas posições do tipo "geral". Cada posição do vetor representa um jogador.
Eu declarei o tipo "geral" usando o registro do Pascal para agrupar diversas variáveis comuns que são usados por vários itens no jogo Mina 2. A declaração foi feita desta forma:
type geral = record
col,lin,cara,cor,direcao:integer;
end;
Como exemplo de uso destas variáveis, o código abaixo define que o objeto que deve ser pego pelo 2º jogador irá aparecer na posição (linha: 10, coluna: 10) da área do jogo:
obj[2].lin := 10;
obj[2].col := 10;
As demais variáveis e constantes serão analisadas em outros artigos de acordo com o uso delas.