Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.04 c
9-1087577286
Ландграф Павел
2004-06-18 20:48
2004.11.07
Избирательное освещение на подобие NOX


8-1091860738
Tika-Z
2004-08-07 10:38
2004.11.07
Масштабирование


4-1096526534
Muhsin
2004-09-30 10:42
2004.11.07
Запуск других приложений


14-1097765421
Шишкин Илья
2004-10-14 18:50
2004.11.07
Петля Нестерова


9-1089256974
COOLer
2004-07-08 07:22
2004.11.07
Помогите с DelphiX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский