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).
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