Programowanie w języku Delphi » Gotowce

Tablice

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.



1 cos :array [0..20] of string;<br>
2 cos :array [0..20,0..20] of string;<br>
3 cos :array [0..20,0..20,0..20] of string;   <br>
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.




3|

2|

1|

0+----

 01234



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



0

 11111111111111111

 10101010001010101

 10010000101010101

 10101010100010101

 10101110101010101

 10001010101000101

 10100010001010001

 11111111111111111



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



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


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 komentarze

Henryk555 2009-09-06 13:34

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

endrique 2004-03-23 12:55

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

Wolverine 2004-02-14 18:58

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

Deti 2003-08-22 21:23

Ale beznadziejny artykuł... Bosheeeee