Class TTETRIS (unit T_TETRIS)

Inherits from

TGraphicControl

Constructors


Constructor Create(AOwner:TComponent);

Public declarations

*********************************************



Functions

FUNCTION GET_FREE_LINES(SEE:BOOLEAN):INTEGER;

TRUE SE IL PEZZO VIENE SPOSTATO

PROCEDURE INSERT_LINE(X:INTEGER;C:TCOLOR);


FUNCTION MOVE_DOWN:INTEGER;

INIZIALIZZA IL GIOCO RUNTIME PER MUOVERE IL PEZZO

RESTITUISCE 0 SE IL PEZZO E' STATO ABBASSATO 1 SE SI E' FERMATO 2 SE DOPO CHE SI E' FERMATO E' FINITA LA PARTITA


FUNCTION MOVE_LEFT:BOOLEAN;

TRUE SE IL PEZZO VIENE SPOSTATO

PROCEDURE MOVE_PREVIEW(X,Y:INTEGER);


FUNCTION MOVE_RIGHT:BOOLEAN;

TRUE SE IL PEZZO VIENE SPOSTATO

PROCEDURE NEW_GAME;

destructor Destroy; override;

INIZIALIZZA LA NUOVA PARTITA


PROCEDURE ROTATE_LEFT;


PROCEDURE ROTATE_RIGHT;


FUNCTION SEND_BOTTOM:INTEGER;


PROCEDURE SET_PIECE(X,Y:INTEGER;C:TCOLOR);

RUNTIME PER MODIFICARE LE IMPOSTAZIONI DELLO SCHERMO

QUADRATO(X,Y) AGGIUNGE UN QUADRETTO DI COLORE C NELLA POSIZIONE X,Y.


procedure Paint;

Protected declarations

FUNCTION CAN_MOVE(CONST DOVE,X,Y:INTEGER):BOOLEAN;

RESTITUISCE TRUE SE E' POSSIBILE MUOVERE IL PEZZO NELLA DIREZIONE INDICATA DA DOVE (BASSO, DESTRA, SINISTRA

PROCEDURE DISEGNA_PEZZO(CONST X,Y:INTEGER;CONST VEDI:BOOLEAN);

SE ESCE DALLO SCHERMO NON E' VALIDO

FUNCTION FULL_LINES(DA:INTEGER):INTEGER;

CONTROLLA (ED ELIMINA) LE RIGHE PIENE

procedure MakeObj(const N:integer);


PROCEDURE MAKE_SCREEN;

PAINT;

PROCEDURE NOT_DELETED_COUNT(VALUE:INTEGER);


PROCEDURE NOT_PIECE_COUNT(VALUE:INTEGER);


PROCEDURE P(X,Y:INTEGER;C:TCOLOR);

CONTROLLA CE NON SIA SU UN PEZZO ESISTENTE

FUNCTION POSI(KX,KY,JX,JY:INTEGER):BOOLEAN;

CONTROLLA CHE DOPO LA TRASLAZIONE IL CORRISPONDENTE DELLA MATRICE PRINCIPALE SIA VUOTO

PROCEDURE QUADRATO(X,Y:INTEGER;C:TCOLOR);

INVALIDATE;

PROCEDURE RUOTA_PEZZO(CONST N,X,Y:INTEGER;VAR PEZZ:PEZZO);

If fBitmap<>nil then Canvas.

PROCEDURE SALVA_PEZZO(KX,KY:INTEGER);

SALVA LA POSIZIONE DEL PEZZO DOVE SI E' FERMATO

PROCEDURE SET_BK_COLOR(VALUE:TCOLOR);


PROCEDURE SET_BLOCK_TYPE(VALUE: TBLOCKTYPE);


PROCEDURE SET_CAPTION(VALUE:TCAPTION);


PROCEDURE SET_NEXT_PIECE(VALUE:INTEGER);

INSERISCE LA LINEA

PROCEDURE SET_N_TYPE(VALUE:INTEGER);


PROCEDURE SET_P_SIZE(S:INTEGER);


PROCEDURE SET_SCREEN(VALUE:INTEGER);


PROCEDURE SET_SFC(VALUE:BOOLEAN);


PROCEDURE SET_SIL(VALUE:BOOLEAN);

procedure fSetBitmap(Value: TBitmap);

PROCEDURE SET_SNP(VALUE:BOOLEAN);


PROCEDURE SET_SQUARE_DIM(VALUE:INTEGER);


PROCEDURE SHOW_NEXT;

procedure TTETRIS.

Properties

property BackGroundColor : TCOLOR


property Blocktype : TBLOCKTYPE


property LastDeletedLine : INTEGER


property NextPiece : INTEGER


property NumberOfPieces : INTEGER

Published declarations

property NumberOfType : INTEGER


property PreviewCaption : TCAPTION


property PreviewSize : INTEGER


property ScreenNumber : INTEGER


property ShowBorderColor : BOOLEAN


property ShowFillColor : BOOLEAN


property ShowNextpiece : BOOLEAN


property SquareDimension : INTEGER


Events

Variables

BLOCK_TYPE : TBLOCKTYPE;


CX : INTEGER;


CY : INTEGER;


DELETED_L : INTEGER;

TIPO SCHERMO

F_PREW : TFORM;


NULL_COLOR : TCOLOR;


N_TYPE : INTEGER;


PEZ : PEZZO;


Piece : ARRAY[1..2] OF integer;

DIMENSIONI PREW

P_CAPT : TCAPTION;

Private declarations

P_COUNT : INTEGER;

VISUALIZZA IL COLORE DI RIEMPIMENTO

P_SIZE : INTEGER;

FORM PREW

SCR_N : INTEGER;


SFC : BOOLEAN;

WISUALIZZA IL CONTORNO DEL PEZZO

SIL : BOOLEAN;

VISUALIZZA IL PROSSIMO PEZZO

SIZEX : INTEGER;

CONTATORE PEZZI

SIZEY : INTEGER;


SNP : BOOLEAN;

NUMERO DI PEZZI fBitmap: TBitmap;

SQX : INTEGER;

ULTIME RIGHE CANCELLATE.

Vet : array[0..TETRIS_COLUMNS,0..TETRIS_LINES] of TCOLOR;

POSIZIONE DEL PEZZO


Constructors


Constructor Create(AOwner:TComponent);

Public declarations

*********************************************


Functions


FUNCTION GET_FREE_LINES(SEE:BOOLEAN):INTEGER;

TRUE SE IL PEZZO VIENE SPOSTATO


PROCEDURE INSERT_LINE(X:INTEGER;C:TCOLOR);


FUNCTION MOVE_DOWN:INTEGER;

INIZIALIZZA IL GIOCO RUNTIME PER MUOVERE IL PEZZO

RESTITUISCE 0 SE IL PEZZO E' STATO ABBASSATO 1 SE SI E' FERMATO 2 SE DOPO CHE SI E' FERMATO E' FINITA LA PARTITA


FUNCTION MOVE_LEFT:BOOLEAN;

TRUE SE IL PEZZO VIENE SPOSTATO


PROCEDURE MOVE_PREVIEW(X,Y:INTEGER);


FUNCTION MOVE_RIGHT:BOOLEAN;

TRUE SE IL PEZZO VIENE SPOSTATO


PROCEDURE NEW_GAME;

destructor Destroy; override;

INIZIALIZZA LA NUOVA PARTITA


PROCEDURE ROTATE_LEFT;


PROCEDURE ROTATE_RIGHT;


FUNCTION SEND_BOTTOM:INTEGER;


PROCEDURE SET_PIECE(X,Y:INTEGER;C:TCOLOR);

RUNTIME PER MODIFICARE LE IMPOSTAZIONI DELLO SCHERMO

QUADRATO(X,Y) AGGIUNGE UN QUADRETTO DI COLORE C NELLA POSIZIONE X,Y. SE Y=-1 VIENE AGGIUNTO NELL'ULTIMA POSIZIONE LIBERA PARTENDO DALL'ALTO.


procedure Paint;

Protected declarations


FUNCTION CAN_MOVE(CONST DOVE,X,Y:INTEGER):BOOLEAN;

RESTITUISCE TRUE SE E' POSSIBILE MUOVERE IL PEZZO NELLA DIREZIONE INDICATA DA DOVE (BASSO, DESTRA, SINISTRA


PROCEDURE DISEGNA_PEZZO(CONST X,Y:INTEGER;CONST VEDI:BOOLEAN);

SE ESCE DALLO SCHERMO NON E' VALIDO


FUNCTION FULL_LINES(DA:INTEGER):INTEGER;

CONTROLLA (ED ELIMINA) LE RIGHE PIENE


procedure MakeObj(const N:integer);


PROCEDURE MAKE_SCREEN;

PAINT;


PROCEDURE NOT_DELETED_COUNT(VALUE:INTEGER);


PROCEDURE NOT_PIECE_COUNT(VALUE:INTEGER);


PROCEDURE P(X,Y:INTEGER;C:TCOLOR);

CONTROLLA CE NON SIA SU UN PEZZO ESISTENTE


FUNCTION POSI(KX,KY,JX,JY:INTEGER):BOOLEAN;

CONTROLLA CHE DOPO LA TRASLAZIONE IL CORRISPONDENTE DELLA MATRICE PRINCIPALE SIA VUOTO


PROCEDURE QUADRATO(X,Y:INTEGER;C:TCOLOR);

INVALIDATE;


PROCEDURE RUOTA_PEZZO(CONST N,X,Y:INTEGER;VAR PEZZ:PEZZO);

If fBitmap<>nil then Canvas.StretchDraw(ClientRect,fbitmap);


PROCEDURE SALVA_PEZZO(KX,KY:INTEGER);

SALVA LA POSIZIONE DEL PEZZO DOVE SI E' FERMATO


PROCEDURE SET_BK_COLOR(VALUE:TCOLOR);


PROCEDURE SET_BLOCK_TYPE(VALUE: TBLOCKTYPE);


PROCEDURE SET_CAPTION(VALUE:TCAPTION);


PROCEDURE SET_NEXT_PIECE(VALUE:INTEGER);

INSERISCE LA LINEA


PROCEDURE SET_N_TYPE(VALUE:INTEGER);


PROCEDURE SET_P_SIZE(S:INTEGER);


PROCEDURE SET_SCREEN(VALUE:INTEGER);


PROCEDURE SET_SFC(VALUE:BOOLEAN);


PROCEDURE SET_SIL(VALUE:BOOLEAN);

procedure fSetBitmap(Value: TBitmap);


PROCEDURE SET_SNP(VALUE:BOOLEAN);


PROCEDURE SET_SQUARE_DIM(VALUE:INTEGER);


PROCEDURE SHOW_NEXT;

procedure TTETRIS.fSetBitmap(Value: TBitmap); Begin FBitmap.Assign(Value); Invalidate; End;


Properties


property BackGroundColor : TCOLOR


property Blocktype : TBLOCKTYPE


property LastDeletedLine : INTEGER


property NextPiece : INTEGER


property NumberOfPieces : INTEGER

Published declarations


property NumberOfType : INTEGER


property PreviewCaption : TCAPTION


property PreviewSize : INTEGER


property ScreenNumber : INTEGER


property ShowBorderColor : BOOLEAN


property ShowFillColor : BOOLEAN


property ShowNextpiece : BOOLEAN


property SquareDimension : INTEGER


Events


Variables


BLOCK_TYPE : TBLOCKTYPE;


CX : INTEGER;


CY : INTEGER;


DELETED_L : INTEGER;

TIPO SCHERMO


F_PREW : TFORM;


NULL_COLOR : TCOLOR;


N_TYPE : INTEGER;


PEZ : PEZZO;


Piece : ARRAY[1..2] OF integer;

DIMENSIONI PREW


P_CAPT : TCAPTION;

Private declarations


P_COUNT : INTEGER;

VISUALIZZA IL COLORE DI RIEMPIMENTO


P_SIZE : INTEGER;

FORM PREW


SCR_N : INTEGER;


SFC : BOOLEAN;

WISUALIZZA IL CONTORNO DEL PEZZO


SIL : BOOLEAN;

VISUALIZZA IL PROSSIMO PEZZO


SIZEX : INTEGER;

CONTATORE PEZZI


SIZEY : INTEGER;


SNP : BOOLEAN;

NUMERO DI PEZZI fBitmap: TBitmap;


SQX : INTEGER;

ULTIME RIGHE CANCELLATE. <0 PER NUOVO PEZZ0


Vet : array[0..TETRIS_COLUMNS,0..TETRIS_LINES] of TCOLOR;

POSIZIONE DEL PEZZO