![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Генерация лабиринтов
Soroka © (2004-10-27 15:41:00)Привет _профессора _игр !
Решила _вот_ спросить, _можно_ ли_ написать_ на_ ГЛ_сцене_ гнератор_ лабиринтов, _очень_ надо._Если _да, _тто_подскажите_где_взять_пример_того_что_нужно_для_этого_знать.
Заранее_всем_спасибочки.
Darthman (2004-10-29 18:26:00) [21]а выход из этого лабиринта будет? :)
rts111 (2004-10-29 16:42:00) [22]Вот написал вроде работает
procedure TForm1.Button1Click(Sender: TObject);
var
lab:array of array of byte;
s,w,h:word;
y,x:integer;
pic:tbitmap;
xsm,ysm:integer;
tn,tx,ty:integer;
ttt:boolean;
begin
Randomize;
s:=4; // размер блока
w:=99;h:=69;// НЕ ЧЕТНЫЕ
setlength(lab,h,w);
for y:=0 to h-1 do for x:=0 to w-1 do
if(x=0)or(y=0)or(x=w-1)or(y=h-1)
then lab[y,x]:=1 else lab[y,x]:=0;
lab[0,1]:=0;lab[h-1,w-2]:=0;
for tn:=1 to 10000 do /////// Генерация ///////////////
begin
tx:=random(w div 2)*2;
ty:=random(h div 2)*2;
if lab[ty,tx]>0
then begin
case random(4)of
0:begin xsm:= 1;ysm:= 0;end;
1:begin xsm:=-1;ysm:= 0;end;
2:begin xsm:= 0;ysm:= 1;end;
3:begin xsm:= 0;ysm:=-1;end;
end;
ttt:=true;
while ttt
do begin
ttt:=false;
if(tx+xsm>0)and(tx+xsm<w-1)and(ty+ysm>0)and(ty+ysm<h-1)then
if(lab[ty+ysm,tx+xsm]=0)and(lab[ty+2*ysm,tx+2*xsm]=0)then
begin
lab[ty+ysm,tx+xsm]:=1;
ty:=ty+ysm;
tx:=tx+xsm;
ttt:=true;
end
end;
end;
end;/////////////////////////////////////////////////////
pic:=tbitmap.Create;
pic.Width:=w*s;pic.Height:=h*s;pic.Canvas.Brush.Color:=0;
for y:=0 to h-1 do for x:=0 to w-1 do
if lab[y,x]>0 then pic.Canvas.Rectangle(x*s,y*s,x*s+s,y*s+s);
canvas.Draw(10,10,pic);
pic.Free;
end;
П7 (2004-10-29 14:04:00) [23]Блин.
Выкини свой яндекс. Извини, конечно, но тебе дали ОГРОМНУЮ тему для поиска. Когда я искал подобную инфу, то нашёл ГРУДЫ всякой инфы. С примерами и полными описаниями процессов генерации. Если ты не можешь искать информацию в Сети, то помочь тебе не может никто. Может ты перед тем, как учиться программировать, научишься искать информацию.
Кое кто тебе даже ссылки привёл, но ты, видимо, их тоже не нашла... (:
На сём прощаюсь...
марсианин (2004-10-28 23:40:00) [24]http://algolist.manual.ru/games/maze.php
DeadMeat (2004-10-28 23:12:00) [25]
> [7] Soroka © (28.10.04 08:43)
Я ж ссылку привел. Там статьи на эту тему есть. А портал очень хорошо подходит просто для реализации...
---
...Death Is Only The Begining...
Darthman (2004-10-28 16:44:00) [26]можно_ ли_ написать_ на_ ГЛ_сцене_ гнератор_ лабиринтовили отрисовщик? Определись с задачей сначала. Генерация в GLScene не нуждается совсем.
Colt1978 (2004-10-28 15:52:00) [27]и кстати используй эксплорер в конце концов чтоли или оперу переставь, в глазах рябит от таких предложений и фраз с подчёркванием
Colt1978 (2004-10-28 15:51:00) [28]Soroka, насколько я знаю в инете полно всяких формул генерации лабиринтов, просто их результат работы тебе придётся просто присандалить к порталу, хотя я не асс в этом но я думаю всё же за пару деньком это сделать можно...
Soroka (2004-10-28 08:43:00) [29]Незнаю _П7, _в_Яндексе_ничего_хорошего _не_ нашла._Странно_у_меня _на_работе_что_то_Опера_глючит, _пробелы_не _ставятся.
В_играх_конечно_да, _а_в_примерах_или_документации_?
DeadMeat,_в_портале_нет_генерации_лабиринта._Его_только_можно_построить_на_портале.
П7 (2004-10-28 07:24:00) [30]Да их МОРЕ. Обратите свой взгляд на roguelike-игры. Половина из них генерит свои ровни (в основном подземелья) на лету. ADMO, DeadCold (к нему есть исходники на FreePascal) и др. В Сети есть ГОРЫ и ГРУДЫ статей на эту тему. Лентяи вы! (:
Кто---то (2004-10-28 07:04:00) [31]А, кстати, действительно, существует ли программа для генерации лабиринтов ? В смысле с исходником. Какие хоть принципы у этой генерации лабиринтов ? Надо же, чтобы они достаточно сложными были.
DeadMeat (2004-10-28 01:17:00) [32]На http://delphigfx.mastak.ruкажись есть статьи по поиску пути. Там помойму было и такое
Плюс Portal из самого GLScene
---
...Death Is Only The Begining...
Soroka (2004-10-27 22:26:00) [33]Пробелов небыло, так это что-то было с оперой, перегрузиться не могла, т.к. сливала файлы.
Интересно какже можно это сделать на делфи не рисуя ?
П7 (2004-10-27 18:43:00) [34]бот... (:
Darthman (2004-10-27 16:13:00) [35]генератор лабиринтов писать надо не на ГЛсцене. На ней только рисовать. Генерировать надо на делфи :)
А чего с подчеркиваниями? ТипаНастоящимПрограммистамПробелыНеНужны?