Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
3-1097044033
Bless
2004-10-06 10:27
2004.11.07
Доступ к xls-файлу через ADO


1-1098543121
PURGEN
2004-10-23 18:52
2004.11.07
Ошибка в коде ???


14-1097833874
NewDelpher
2004-10-15 13:51
2004.11.07
TClientSocket и TServerSocket


1-1098349838
Shuma
2004-10-21 13:10
2004.11.07
Форма в DLL


1-1098697952
Artemius
2004-10-25 13:52
2004.11.07
Как определить путь к программе?




   Наверх