Outras estruturas de programação:

Nos jogos, uma das operações mais usadas e importantes é o uso de valores aleatórios, ou seja, frequentemente precisamos obter um número qualquer, sem que se saiba dele à princípio. Usamos a função Random para isso:

   Valor:= Random(10);

A variável Valor receberá um valor entre 0 e 10 (não incluido o valor 10).

Outra estrutura muito usada é a declaração case... of... Ela é uma espécie de central otimizada de decisões - um "ninho" de if then, organizados em função de uma única variável (numérica inteira ou caracter). Digamos que uma variável Vlx controla determinadas decisões. Se Vlx for igual a 1, então uma segunda variável (Valor) deverá receber o valor 4; se for 2, então Valor será acrescida de 2; se Vlx estiver entre 5 e 9, então Valor será diminuido de 1:

   case Vlx of
     1: Valor:= 4;
     2: Valor:= Valor + 2;
     5..9: Valor:= Valor -1;
   end;

No campo das variáveis, dispomos de uma estrutura muito usada em jogos. São os chamados arrays ou matrizes. São coleções de variáveis do mesmo tido, identificadas por um índice. São declaradas como as demais variáveis:

   var
     Valores: array[0..10] of integer;

Nesta declaração, teremos 11 (0 a 10) variáveis inteiras, que poderão ser referenciadas pelo nome Valores e pelo índice (dentro de [ ] ). Por exemplo:

   Valores[0]:= 10;
   Valores[5]:= 15;

Esse tipo de variável é muito usada com loopings for... do...

   for Tm:= 0 to 10 do Valores[Tm]:= 0;

Os arrays não são apenas numéricos, podendo inclusive ser compostos por strings. Por exemplo:

   var
     Frases: array[0..10] of string;

Como os arrays só comportam o mesmo tipo de variável, em conjunto com eles dispomos de uma declaração chamada record (ou registro) a qual nos permite modelar uma variável de acordo com nossas necessidades.

Por exemplo: num jogo temos os personagens, que serão descritos por um conjunto de três variáveis: Nome, Dinheiro e Vida. Nome é uma variável string; Dinheiro é uma variável numérica (integer) e Vida é uma variável booleada, ou seja, possui apenas duas possibilidades: true ou false.

Antes de declarar um array de personagens, configuramos a sua estrutura:

   type
     Personagem = record
       Nome: string;
       Dinheiro: integer;
       Vida: boolean;
     end;

A seguir declaramos o array de personagens:

   var
     Pessoa: array[0..10] of Personagem;

De agora em diante podemos usar em nossa programação construções do tipo:

   Pessoa[0].Nome:= 'Nome da pessoa 0';
   Pessoa[0].Dinheiro:= 10000;
   Pessoa[0].Vida:= true;


online