|
Как организовать и правильно обрабатывать структуру внутреннего мира игры? Данная статья расскажет об одном из вариантов решения проблемы... Вопрос: с чего начать? например N U ############# |/ # 1 | 2 | 3 # W--+--E #########---# /| # 4 # D S #####из первой комнаты можно идти только на восток из второй - на запад и на восток из третьей - на запад и на юг из четвертой - только на север
Вопрос: по какому принципу вы писали передвижение между локациями?
.................. z: array[1..100] of record s,n,u,d,w,e : integer; что-то еще : как-то еще; end; .................. .................. for i:= 1 to 100 do begin z[i].s := 0; z[i].n := 0; z[i].w := 0; z[i].e := 0; z[i].u := 0; z[i].d := 0; end; ..................Ноль означает, что выхода в этом направлении нет. Пример, 2 комнаты, из 1 есть выход на юг, а из 2 - на север. .................. z[1].s := 2; z[2].n := 1; ..................Вывод, в каждой комнате мы можем идти только в одном направлении. Получилась замкнутая система комнат. Движок с этим справляется. Что-то еще - это элемент (массив), отвечающий за количество предметов на локации. У меня по умолчанию используется 20. Т.е. более этого числа предметов мы не сможем положить на локацию.
Вопрос: как перейти из одной комнаты в другую?
if z.[MyLocation].n >0 then MyLocation := z.[MyLocation].n else WriteLn('Нет пути...') Вопрос: Есть ли смысл использовать динамические структуры и насколько критичен код программы к скорости выполнения? |
||||||||||
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети