Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2012, 10:50   #1
dancer1
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 18
По умолчанию Генерация лабиринта в Delphi

Привет всем, вот встала задачка написать генератор лабиринта, литературы прочитал тонну но видимо что-то не учел и не полчается.
Получается две кардинаты формировния вспомогаетльных точек, их я записываю в массив, но почемуто когда вытягиваю у меня выход за границы грида происходит и не чертит нифига.
Каждый этап лабиринта ращмещен в своем таймере.
Часть кода стер так как ограничение на кол-во символов стоит.
Вот код:
Код:
unit Unit1;
  private
  public
    element : string;
    Col,Row,i,j,i1,j1,m,n,rand1,rand2,count : integer;
    X : array [1..40] of integer;
    y : array [1..40] of integer;
  end;
procedure TForm1.Button5Click(Sender: TObject);
begin
timer2.Enabled := true;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
  i:= Random(56);
  j:= Random(57);
  if count = 40 then
    begin
      m := 0; Timer2.Enabled := false;
    end
    else
      begin
        StringGrid1.Cells[i,j] := 'W';
        X[m] := i; Y[m] := j;
        inc(count);inc(m);
      end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Timer3.Enabled := true;
end;
procedure TForm1.Timer3Timer(Sender: TObject);
begin
StringGrid1.Cells[X[m+1],Y[m+1]]:='W'; //тут запара
end;
end.
dancer1 вне форума Ответить с цитированием
Старый 20.02.2012, 11:56   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Zloi Talib Посмотреть сообщение
Ну ты вообще какой умный!))


Код:
var w,x,y:integer;
begin
x:=0;y:=0;w:=0;
  form1.StringGrid1.cells[x,y]:='w';
repeat
  if w=0 then x:=x+1;
  if w=1 then x:=x-1;
  if (x=(form1.StringGrid1.colcount-1)) then begin y:=y+2;
  w:=1;
  end;
  if x=0 then begin
  w:=0;
  y:=y+2;
  end;
   form1.StringGrid1.cells[x,y]:='w'
  until y>=form1.StringGrid1.rowcount;
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 20.02.2012, 11:58   #3
dancer1
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 18
По умолчанию

спасибо всем буду пробовать
dancer1 вне форума Ответить с цитированием
Старый 21.02.2012, 01:00   #4
dancer1
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 18
По умолчанию

хм, получается не то что нужно...
dancer1 вне форума Ответить с цитированием
Старый 21.02.2012, 07:09   #5
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
Радость

Цитата:
Сообщение от dancer1 Посмотреть сообщение
хм, получается не то что нужно...
http://forum.spark-media.ru/index.ph...0%D0%BB%D0%B5/
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi и генерация запроса на ЭЦП Dr_Cuker Общие вопросы Delphi 6 04.05.2011 15:31
Генерация Shape файлов в Delphi artemavd Общие вопросы Delphi 0 08.12.2010 16:28
Создание лабиринта.Delphi 7 savraska Помощь студентам 0 02.06.2010 12:43
Выход из лабиринта karamelka87 Общие вопросы C/C++ 9 27.01.2009 23:49
Генерирование рандомного лабиринта Djaconda Паскаль, Turbo Pascal, PascalABC.NET 12 12.11.2007 19:00