Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Ошибка в коде ???   Найти похожие ветки 

 
PURGEN   (2004-10-23 18:52) [0]


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 и т.д. Тупой вопрос - ПОЧЕМУ???


 
TUser ©   (2004-10-23 18:59) [1]

Может я чегно-то проглядел, но значения присваиваются, вроде, только в этих строчках
mas_figura[1,1]:=1;
mas_figura[m,n]:=1; // 3 раза
Т.е. всего ты заполняешь 4 клетки, а не 16.


 
PURGEN   (2004-10-23 19:05) [2]

Все правильно...Фигурки состоят из 4 кубиков, т.е. в массиве должно быть заполнено 4 клетки, а другие НОЛЬ, или ты хочешь сказать те клетки, которые НОЛИК должны быть тоже присвоены...типа mas_figura[j,i]:=0???


 
begin...end ©   (2004-10-23 19:08) [3]


> [2] PURGEN   (23.10.04 19:05)

> те клетки, которые НОЛИК должны быть тоже присвоены

Разумеется.


 
TUser ©   (2004-10-23 19:10) [4]

А вы запустите
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 не инициализирует статические массивы


 
PURGEN   (2004-10-23 19:11) [5]

Чичас попробую...



Страницы: 1 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
14-1097859540
lipskiy
2004-10-15 20:59
2004.11.07
Где дают нормальный бесплатный ftp? И много?


1-1098208529
Falcon(TFSoft)
2004-10-19 21:55
2004.11.07
^ и @


1-1098264904
Kogor
2004-10-20 13:35
2004.11.07
Тормоза с чтением каритнки в VCL вторым потоком


1-1098421675
Anatoly P
2004-10-22 09:07
2004.11.07
Консольная программа


14-1097598988
kaif
2004-10-12 20:36
2004.11.07
Странное затишье, продолжение...