2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 "Проходимость" карты
Сообщение12.12.2012, 18:34 


05/09/12
2587
Пишу игрушку сыну, на 1С :-) (хотя платформа не принципиальна). Моделируется игра "Лабиринт" - компьютер в роли ведущего задает карту: прямоугольник из заранее известного количества клеток по ширине и высоте, в каждой клетке может быть один из заранее известного класса объектов. Некоторые классы - ямы: пара клеток любого взаимного расположения, при попадании в одну оказываешься в другой, реки: n клеток последовательно соприкасающихся сторонами, при попадании в любую часть оказываешься в конце и т.д. Игрок не знает карту, можно навешивать любые миссии, но суть в том чтобы разгадать карту и ходить осознанно. Игрок делает ход - вправо, влево, вверх или вниз - ведущий (компьютер) отвечает - пусто, яма 3, река и т.п.
Я запрограммировал процесс генерации карты, интерфейс и отработка ходов не вызывают сложностей. Но в процессе генерации порой получаются такие карты, которые нельзя пройти - то есть, или попадая в определенную точку нельзя из нее выйти (например, река стеклась в центр по спирали, или 2 реки так взаимно переплелись), или просто есть недоступные области. Собственно, возник вопрос - есть ли какой-нибудь алгоритм или метод, который позволяет проверять полученную карту на "проходимость" - то есть на отсутствие мертвых зон и недоступных областей? Другими словами, чтобы из любой исходной точки можно было попасть в любую другую. Предполагаемое количество клеток в длине/ширине карты - порядка 5-10.

 Профиль  
                  
 
 Re: "Проходимость" карты
Сообщение12.12.2012, 18:44 
Заслуженный участник


04/05/09
4589
Проходимость из одной точки - Breadth-first search.
Проходимость из любой точки в любую заметно сложнее - Floyd–Warshall algorithm.

 Профиль  
                  
 
 Re: "Проходимость" карты
Сообщение12.12.2012, 18:55 
Заслуженный участник
Аватара пользователя


06/04/10
3152
Т.к. время вычислений не очень существенно, рассчитайте матрицу расстояний.

 Профиль  
                  
 
 Re: "Проходимость" карты
Сообщение15.12.2012, 18:01 


05/09/12
2587
Спасибо за ссылки, но проверку проходимости карты пока не реализовал, надо разбираться в методах и графах. А так программка готова, довольно интересно оказалось играться :) Задаются размеры поля, количество и длина рек, количество ям, генерируется карта, отрабатываются ответы на ходы пользователя. Если кому интересно - могу выложить файлик. Только это внешняя обработка для 1С 7.7 - запускается только из под нее :) Прав был коллега - надо было на Вижуал Студии писать, заодно бы и в ней потренировался.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group