![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в коде ???
PURGEN © (2004-10-23 18:52:00)
procedure TForm1.Button1Click(Sender: TObject);
var mas_figura :array[1..4,1..4] of integer;
mas_koord :array[1..8] of integer;
i,k,l :integer;
num,rnum :integer;
m,n :integer;
begin
randomized;
mas_figura[1,1]:=1;
for i:=1 to 3 do begin
num:=0;
for k:=1 to 4 do
for l:=1 to 4 do
if mas_figura[k,l] <> 0 then begin
if mas_figura[k+1,l]=0 then begin
num:=num+1;
mas_koord[((num*2)-1)]:=k+1;
mas_koord[(num*2)]:=l;
end;
if mas_figura[k,l+1]=0 then begin
num:=num+1;
mas_koord[((num*2)-1)]:=k;
mas_koord[(num*2)]:=l;
end;
end;
rnum:=random(num)+1;
m:=mas_koord[((rnum*2)-1)];
n:=mas_koord[(rnum*2)];
mas_figura[m,n]:=1;
end;
end.
Программка составляет фигурки для тетриса... В процессе процедуры должен получиться массив 4х4 MAS_FIGURA, в котором ЕДИНИЦА - это заштрихованная область фигурки... Проблема в том, что вконце процедуры в этом массиве появляются какието другие цифры нежели 1 и 0...типа 238594, 47 и т.д. Тупой вопрос - ПОЧЕМУ???
PURGEN (2004-10-23 19:11:00) [1]Чичас попробую...
TUser (2004-10-23 19:10:00) [2]А вы запустите
procedure TForm1.FormCreate
var a:array [0..2] of integer;
begin
for i:=0 to 2 do
(FindComponewnt('label'+inttoastr(I)) as TLabel).Caption:=inttostr(a[i]);
end;
Delphi не инициализирует статические массивы
begin...end (2004-10-23 19:08:00) [3]
> [2] PURGEN (23.10.04 19:05)
> те клетки, которые НОЛИК должны быть тоже присвоены
Разумеется.
PURGEN (2004-10-23 19:05:00) [4]Все правильно...Фигурки состоят из 4 кубиков, т.е. в массиве должно быть заполнено 4 клетки, а другие НОЛЬ, или ты хочешь сказать те клетки, которые НОЛИК должны быть тоже присвоены...типа
mas_figura[j,i]:=0???
TUser (2004-10-23 18:59:00) [5]Может я чегно-то проглядел, но значения присваиваются, вроде, только в этих строчках
mas_figura[1,1]:=1;
mas_figura[m,n]:=1; // 3 раза
Т.е. всего ты заполняешь 4 клетки, а не 16.