Pascalzim
Leonardo Pignataro's TETRIS - versão 1.0
* Incluído para demonstrar os recursos do Pascal ZIM! Autor : Leonardo Pignataro - Beta Tester Contato : leopignataro@brturbo.com Este código fonte teve de sofrer algumas adaptações para torná-lo compatível com o Pascalzim. A versão original pode ser encontrada no seguinte URL:
http://www.geocities.com/leopignataro86/tetris.zip
------------------------------------------------------------- } { ------------------------------------------------------------- Funcionamento geral do programa:
Basicamente, há um grid, que armazena em memória o estado das 'casas' do jogo: quais estão preenchidas, e de que cor. Este grid é representado na tela, sendo que cada casa ocupa dois caracteres consecutivos, sendo eles caracteres #219.
Há uma peça caindo no grid (tipo T_Object, variavel obj), controlada pelo usuário, e também uma outra fixa ao lado do grid (mesmo tipo, variavel next) que indica a próxima peça a cair no grid. A velocidade de queda está relacionada com o level em que está o jogador.
Todas essas variáveis - grid, obj, next - entre outras, são globais e os módulos (procedures e functions) do progra- ma fazem acesso direto a elas. Geralmente, evita-se isso, passando variáveis como parâmetros, para que se crie módulos portáveis. Contudo, a modularização em prática nesse programa não visa portabilidade, visto que são módulos totalmente específicos, mas apenas simplificar o programa principal.
NOTA: o sistema de coordenadas utilizado em todo o programa é cartesiano, e *não* segue a lógica de matrizes. Isto é, o ponto (1,4) significa x=1 e y=4, logo está na 1a coluna, 4a linha.
- - - X --> (4,1) CORRETO - - -