Tablice

psychoszayber

Tablice

Tablice Hmm... jeżeli czytaliście jakiś kurs Delphi Pascala to powinien być tam oddzielny dział "TABLICE". Tablice to są po prostu kilka zmiennych o takiej samej nazwie ale każda ma dopasowany numerek. Tablice mogą mieć 1,2,3 i dalej numerków. np.

```delphi 1 cos :array [0..20] of string;
2 cos :array [0..20,0..20] of string;
3 cos :array [0..20,0..20,0..20] of string;  
4 cos :array [0..20,0..20,0..20,0..20] of string;   ```

itd.. Dzięki temu możemy mieć układ współrzędnych np.

<font face="Courier New"> 3|
2|
1|
0+----
 01234</span>

Można tworzyć mapy gier np. mapa labiryntu:

<font face="Courier New">0
 11111111111111111
 10101010001010101
 10010000101010101
 10101010100010101
 10101110101010101
 10001010101000101
 10100010001010001
 11111111111111111</span>

i teraz bez problemu odczytamy czy np. w pozycji 3,4 (x,y) ma być blok czyli kod

```delphi if cos[3,4]=1 then {procedury} ```

Na zakładce Additional jest komponent DrawGrid on także daje możliwość 2D

Żeby narysować taką mapkę na DrawGird trzeba zrobić prostą procedurę (DrawGird Ustaw FixedCols i FixedRows na 0).

```delphi Procedure LoadDrawMap(plik:string;iloscx,iloscy:integer;drawgrid:TDrawGrid;coloroffill,colorofempty:Tcolor); begin assignfile(TF,plik); reset(tf); licz:=-1; while not(eof(TF)) do begin inc(licz); readln(TF,str); for I:=1 to length(str) do begin if str[I]='1' then map[I-1,licz]:=true else map[I-1,licz]:=false; end; end; closefile(TF); {rysowanie-start} for XX:=0 to 17-1 do begin for YY:=0 to 8-1 do begin if map[xx,yy] then begin drawgrid.Canvas.Brush.Color:=coloroffill; drawgrid.Canvas.PEN.Color:=coloroffill; drawgrid.Canvas.Rectangle(drawgrid.CellRect(xx,yy)); end else begin drawgrid.Canvas.Brush.Color:=colorofempty; drawgrid.Canvas.PEN.Color:=colorofempty; drawgrid.Canvas.Rectangle(drawgrid.CellRect(xx,yy)); end; end; end; {rysowanie-koniec} end; ```

Oczywiście procedurę tą należy używać w Form OnPaint. Świetnie wychodzi ta procedura (Speeeed nawet przy mapach 1000 na 1000). WIEM że można było się obejść bez tablic ale np. w 3D już się nie da.

Jeszcze jedno w openGL do 1 vertexu trzeba X,Y,Z. Wtedy tablice okażą się bardzo pomocne np. gdy chcemy wykonać jakiś szczegółowy model.

Autor PsYcHoSzAyBeR.

 Zaglądajcie na moją stronę psychoszayber.republika.pl tam są przykłady i moje programy.

KONIEC. Napisałem to w 14 min. i 35 s. +- 10s (liczyłem).

4 komentarzy

Czemu beznadziejny? Może san sie wychylisz i coś skrobniesz?
PsYcHoSzAyBeR Dziękim zawsze to coś wiedzy dla mnie he he :) i pozdro

dzieki, bo właśnie szukałem tematu na zaliczenie. Może uda mi się na podstawie tego zrobić jakąś prostą grę.

ta, a ja szukalem sortowania dynamicznych tablic po stringu :/

Ale beznadziejny artykuł... Bosheeeee