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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2013, 18:31   #11
anete.anetes
 
Регистрация: 20.09.2013
Сообщений: 9
По умолчанию

Мой Math:
Код:
function RandomRange(const AFrom, ATo: Integer): Integer;
begin
  if AFrom > ATo then
    Result := Random(AFrom - ATo) + ATo
  else
    Result := Random(ATo - AFrom) + AFrom;
end;
Вложения
Тип файла: rar Maze[Prototype].rar (87.7 Кб, 8 просмотров)
anete.anetes вне форума Ответить с цитированием
Старый 21.09.2013, 22:16   #12
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Ещё бы, конечно, вот эти файлики приложить:
Код:
TImage(v).Picture.LoadFromFile('C:\lab\lt.bmp');
TImage(v).Picture.LoadFromFile('C:\lab\l.bmp');
TImage(v).Picture.LoadFromFile('C:\lab\t.bmp');
TImage(v).Picture.LoadFromFile('C:\lab\nn.bmp');
Я попробовал первые попавшиеся мне на компе картинки на удачу проставить - картина невнятная получается. Кстати, не может такого быть что у Вас из-за самих битмапов складывается ощущение, что работает неправильно ? Ну, то есть ошибка не алгоритма, а данных, так сказать.
phomm вне форума Ответить с цитированием
Старый 22.09.2013, 06:27   #13
anete.anetes
 
Регистрация: 20.09.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Ещё бы, конечно, вот эти файлики приложить:
Код:
TImage(v).Picture.LoadFromFile('C:\lab\lt.bmp');
TImage(v).Picture.LoadFromFile('C:\lab\l.bmp');
TImage(v).Picture.LoadFromFile('C:\lab\t.bmp');
TImage(v).Picture.LoadFromFile('C:\lab\nn.bmp');
Я дико извиняюсь, после офиса всегда туплю сильно.

А вообще я думал о прорисовке, но вроде как алгоритм всё равно не правильный, по крайней мере на стены проверок точно нет, а пока что дописать не могу их.
Вложения
Тип файла: rar Maze[Img].rar (555 байт, 7 просмотров)
anete.anetes вне форума Ответить с цитированием
Старый 22.09.2013, 13:42   #14
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Так надо ? Я просто не могу ориентироваться как именно должно быть, нет образца для сравнения.

Я там малость переворошил в коде что мне не понравилось, но сам алгоритм не трогал вообще, т.е. на мой взгляд он стал работать и вроде как ничего вполне.
Из переворошённого (о, какое слово!) - выкинуты имейджи и заменены на битмапы (были подозрения на не пойми как работавшую процедурку showmaze из-за одного пустого квадратика, её тоже соответственно выкинул, точнее преобразовал в формпейнт) и, ввиду лени, была наколдована магия для отрисовки:
Код:
for i := LMin to LMax do
  for a := LMin to Lmax do
    Canvas.Draw((i - 1) * sz, (a - 1) * sz, bitmaps[Ord(lab[i, a].l) + Ord(lab[i, a].t)]);
вполне невинна, обычный расчёт смещения для отрисовки битмапа по счетчикам цикла (и учёт константы размера картинки sz), а вот индекс картинки из небольшого хака - 2 булеан переменные из lab складываются как числа , давая индекс 0..3 для массива картинок.

В остальном ничего особенного только добавлены 2 подпрограммки для проверки границ массива.

Ещё дельфи я пользовал старую, лень было расчехлять ХЕ, поэтому юзесы я подрезал - у себя скопипастьте.
Вложения
Тип файла: zip MazeFixed.zip (357.2 Кб, 12 просмотров)
phomm вне форума Ответить с цитированием
Старый 22.09.2013, 15:38   #15
anete.anetes
 
Регистрация: 20.09.2013
Сообщений: 9
По умолчанию

Огромное Вам спасибо, как вернусь из офиса обязательно посмотрю. Насчёт магии отрисовки, Ваше конфу сильнее моего в разы, поэтому я попытаюсь ещё и её разобрать, вроде легко но мб чему новому научусь.

В общем, как вернусь отпишу насчёт результата.
anete.anetes вне форума Ответить с цитированием
Старый 22.09.2013, 21:32   #16
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Хм. нет, я там для вычисления одного числа из диапазона 0..3 допустил ошибочку, надо ещё на 2 домножать один из Ord, сейчас проверил - как-то уже менее адекватно рисует, надо будет ещё покумекать.
Кстати , не могли бы пример получаемых лабиринтов показать, чтобы уж точно знать чего надо добиваться )
phomm вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм Прима (C++) ZoxWatt Помощь студентам 0 06.10.2012 10:33
Алгоритм Прима tema65 Помощь студентам 0 12.01.2012 18:37
Алгоритм Безенхема для генерации окружности Влад09 Помощь студентам 3 15.10.2010 20:13
Алгоритм Прима DeCo Помощь студентам 0 10.09.2010 15:11
Алгоритм прохождения лабиринта PAVEL315 Общие вопросы Delphi 13 02.01.2010 01:22