Чувство пространства в текстовых играх.
Разработка текстовых игр.
Дата написания: 11.06.2001
Как организовать и правильно обрабатывать структуру внутреннего мира игры? Данная статья расскажет об одном из вариантов решения проблемы... Для описания программного кода будет использоваться Borland Pascal 7.0
Вопрос: с чего начать разработку текстовых игр?
Ответ: Описание лабиринта лучше вначале производить на бумаге, расчертив
карту на квадраты, и пронумеровав их.
например N U ############# |/ # 1 | 2 | 3 # W--+--E #########---# /| # 4 # D S #####из первой комнаты можно идти только на восток из второй - на запад и на восток из третьей - на запад и на юг из четвертой - только на север
Вопрос: по какому принципу вы писали передвижение между локациями?
Ответ: Смотрим, сколько будет у нас комнат. Например, 100.
Тогда
.................. 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. Т.е. более этого числа предметов мы не сможем положить на локацию.
Вопрос: как перейти из одной комнаты в другую?
Ответ: Все очень просто.
Например, мы находимся в комнате 2, т.е.
Хотим идти на север
if z.[MyLocation].n >0 then MyLocation := z.[MyLocation].n else WriteLn('Нет пути...')
Вопрос: Есть ли смысл использовать динамические структуры и
насколько критичен код программы к скорости выполнения?
Ответ: Нет, динамика здесь не нужна. С помощью простых массивов
можно реализовать все, что захочется.
Насчет скорости... Игры данного жанра не требуют скорости обновления
экрана 30-90 кадров в секунду, хотя код программы работает очень быстро!
Delphi — это объектно-ориентированный язык программирования со строгой типизацией переменных. Он используется в основном для написания прикладных, пользовательских программ. Простота использования позволяет рекомендовать его в качестве языка для начального обучения программированию. Хотя, если смотреть на перспективу, работодатели мало интересуются работниками, программирующими на Delphi.
Интересные материалы на сайте:
Исправляем проблему дублей страниц на сайте и склейку доменов с www.
Аналитическая статья для любителей ставок в букмеккерских конторах.
Вводная статья о кодировании цифр с помощью таблиц азбуки Морзе.
Рассматривается алгоритм получения НОД и НОК двух чисел.