Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка в коде ???


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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо