Перейти к содержанию
Admin

Заказ №30: "Маршрутизация метро"

Рекомендуемые сообщения

Основное направление разработки на данный момент:

Описание на GitHub | Вспомогательная таблица

 

 


 

 

Добавил новый заказ.
Планируется передать проработку маршрутов и написание конкретных команд - на аутсорс игрокам.

 

Оплата за схему развязок = 6 стеков изумрудных блоков

Оплата за подготовку отдельной развязки = 1 стек изумрудных блоков

 

Список станций тут.

 

В качестве награды, как минимум - CSLf8v7.png

 

Схема линий, станций и развязок:

efkBknA.jpg

 

 

Развязки, маршруты, команды:

Спойлер

 

При текущем подходе [для экономии командных блоков при проверке проезжающего игрока] используется "маршрут по умолчанию = на спаун": это означает, что все стрелки по умолчанию ведут на спаун.

Из-за этого необходимо выполнять сброс стрелки после проезда игрока.

 

 

При подготовке команд:

  • сначала идут команды в командных блоках: последовательность - сверху (от нажимных рельс) вниз
  • в конце должна быть команда сброса конкретной стрелки в исходное положение

 

Коды направлений рельс:

  • 0: Север-Юг (Юг-Север)
  • 1: Запад-Восток (Восток-Запад).
  • 6: Юг-Восток (Восток-Юг).
  • 7: Юг-Запад (Запад-Юг).
  • 8: Север-Запад (Запад-Север).
  • 9: Север-Восток (Восток-Север).

 

Последний вариант с деревом квадрантов

Спойлер

 

Про КБ выдачи названия станции в чат и ассоциации номер -> адрес в отдельную группу КБ  тут

Список развязок и станций с адресами  тут

Схема дерева квадрантов и станций и развязок на нем  тут

 

У нас 61 развязка и 43 станции (не считая новый спаун)

Глубина вложенности дерева - 5 уровней.

Но я немного читерил - те развязки, которые находятся близко, но у самой границы квадранта, я разносил в разные ячейки, дабы не увеличивать глубину дерева. 

 

C1Q34ep.png

Описание команд развязки тут

 

 

 

 

Старый вариант

Спойлер

 

 

1b8YBqs.jpg

 

Стрелка 1



/execute @p[r=20,score_MetroSt_min=2,score_MetroSt=2] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=7,score_MetroSt=15] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=24,score_MetroSt=26] ~ ~ ~ /setblock 44 33 -100 rail 0
/execute @p[r=20,score_MetroSt_min=32,score_MetroSt=42] ~ ~ ~ /setblock 44 33 -100 rail 0

/setblock 44 33 -100 rail 7 

Стрелка 3



/execute @p[r=20,score_MetroSt_min=1,score_MetroSt=43] ~ ~ ~ /setblock 41 33 -91 rail 9

/setblock 41 33 -91 rail 0 

 

Стрелка 2



/execute @p[r=20,score_MetroSt_min=1,score_MetroSt=1] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=3,score_MetroSt=6] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=16,score_MetroSt=23] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=27,score_MetroSt=31] ~ ~ ~ /setblock 41 33 -96 rail 8
/execute @p[r=20,score_MetroSt_min=43,score_MetroSt=43] ~ ~ ~ /setblock 41 33 -96 rail 8

/setblock 41 33 -96 rail 0  

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У него достаточно дел. Поэтому не откажусь от помощи других игроков :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, newoldmax сказал:

А где почитать?

 

 

Пока только предыдущее обсуждение. Но раз уж меня клюнули, то попробую как можно скорее написать и вывалить куда-нибудь, ссылку подгоню.

 

UPD: В общем, начал писать документацию на гитхабе. Пока еще там есть не все, но буду пополнять.

Изменено пользователем RedTeapot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@LastLife или @StPlotnik, а у вас есть возможность заняться настройкой автоматической маршрутизации метро по мотивам идей Чайника - на основе дерева квадрантов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чайник обещал доделать, когда вернется из леса. И тут Григ его срочно припихал(((. Надо на них как-то надавить -_- Григ вон кричит, что это его проект, пусть и ковыряется, а Чайник быстренько доделает метро и выложит свой скрипт на гитхаб или куда там

  • Минус 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Итак, приступил я было к переделке развязок. Переделал развязки 1, 2 и 3.

 

И выяснилось, что маршрутизация работает криво. Например, если мы едем на станцию 43 и проезжаем по развязке 3, то нас отправит на юг. А через юг объезжать придется далеко и долго, есть путь короче - запад.

 

Скорее всего, связано это с неправильной обработкой адресов станций: станция 43 находится в 3 квадранте 0 уровня, а развязка 3 - в 1 квадранте 0 уровня. Видимо, вот этот факт и повлиял. К слову, такой эффект проявляется не только на развязке 3. Развязки 2 и 1 отработали аналогично.

 

Скорее всего, придется отложить переделку на неопределенный срок и переписать систему маршрутизации.

 

UPD: Также отмечу, что расширил диапазон доступных для выбора станций до максимума, теперь можно выбрать станции от 0 до 43 включительно. Но не доедете.

Изменено пользователем RedTeapot
  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, JinenryokuFu сказал:

пИчаль. И как надолго это затянется?

 

10 часов назад, RedTeapot сказал:

Скорее всего, придется отложить переделку на неопределенный срок и переписать систему маршрутизации.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В теории-то все стройно было, нужно косяк искать. Или просто в осуществлении проблема? И "неопределенный" срок тоже может иметь некие параметры, типа "недели" или "годы".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Типа, недели - на переосмысление. И месяцы - на запуск полностью автоматизированной центральной ветки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минуты назад, Admin сказал:

И месяцы - на запуск полностью автоматизированной центральной ветки.

нужен еще оп на настройку всех пультов, ибо неоформленные станции зачастую не имеют этой важной части. Как и части выдачи-уборки вагонеток, потому что без оп туда кактус как-то не ставится о.О

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Кактус ставится в автоматическом режиме - антивандальная система.

Но да - эту систему тоже надо как-то установить...

Возможно, решается клонированием однотипных схем со станции на станцию, т.к. там всё одинаково.

 

Возможно, Реана поможет с заявками, Чайник таки замутит автоматическую маршрутизацию, а Оцелот поможет всё это донастроить.

У этой славной троицы права опов :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, Admin сказал:

Реана поможет с заявками, Чайник таки замутит автоматическую маршрутизацию, а Оцелот поможет всё это донастроить

Это надо красным в первый пост)). Ладно, я больше не флужу тут. Спасибо за ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Немного пошаманил репозиторий: добавил туда все исходники, вдруг кому пригодится. Но маршрутизацию еще не закончил переписывать.

 

Если что, вот ссылка: https://github.com/Red-Teapot/minecraft-metro

 

=====================

 

Кажется, я допер, в чем заключается проблема с маршрутизацией.

 

Если в одном соседнем квадранте находятся две станции, кратчайшие пути до которых различаются, становится плохо. То есть, если к одной станции соседнего квадранта от текущей развязки быстрее доехать, если направиться на север, а до другой - на юг, то получается бред.

 

Надо решить, как поступать в таких ситуациях. Наверное, выбирать тот путь из этих двух, который короче (по числу пересекаемых развязок). Если эти "расстояния" совпадают, то, наверное, сравнивать Манхэттенское расстояние и выбирать кратчайшее.

Изменено пользователем RedTeapot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хе-хе, все плохо.

 

Переписал примерно все, попробовал прогнать простенький тест: посмотреть, какие пути вышли от всех станций до всех станций.

 

И получилось огромное количество петель: мест, где вагонетка начнет кататься туда-обратно, если бы это было в игре. Надо что-то думать.

 

Кажется, проблема где-то в поиске путей. И что с этим делать - пока не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 часов назад, DarkOfLife сказал:

В чём сложность этой задачи?

Или лучше сказать: как должно работать ваше метро?

 

и обязательно должно быть так http://prntscr.com/drjj50

или можно переделать на 3 блока?

 

Сложность в том, что нужно делать. Делать нужно много. Сделать что-нибудь - не сложно. Сделать всё - очень долго и сложно.

 

Переделать можно и на 3 блока, и на 4 блока, и на 5 блоков, но двух вполне достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто на три проще закрепить на схеме из реда, а с ком блоками и java я лажу пока хреново

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, DarkOfLife сказал:

Просто на три проще закрепить на схеме из реда, а с ком блоками и java я лажу пока хреново

 

Что такое на три?
 + у нас раньше всё было на реде: до 8 станций управлялись с помощью шифрования двоичным кодом.

 

Сейчас мечтаем о сложной, но крутой идее от Чайника - на основе дерева квадрантов: чтобы можно было одной схемой на кб переключать все пульты и стрелки + в любой момент добавлять новые станции...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как я хотел сделать: при заходе в метро игрок на панели задаёт переменную станции. Далее он садится в вагонетку и едет. Подъезжая к развилке КБ(командный блок) сканирующий присутствие игрока в радиусе 10-15 блоков узнаёт значение переменной и даёт ред сигнал под нужные рельсы. дабы направить игрока в нужную ветку. Желательно, что бы и панель и появление вагонетки блочилось, пока есть вагонетка в метро

 

7 часов назад, Admin сказал:

Что такое на три?
 + у нас раньше всё было на реде: до 8 станций управлялись с помощью шифрования двоичным кодом.

 

Сейчас мечтаем о сложной, но крутой идее от Чайника - на основе дерева квадрантов: чтобы можно было одной схемой на кб переключать все пульты и стрелки + в любой момент добавлять новые станции...

 "На три" просто растояние блоков на которых стоят рельсы, между ними можно поставить плотный лёд продвигаться по веткам без вагонетки.

\QfnFgZT.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, DarkOfLife сказал:

как я хотел сделать: при заходе в метро игрок на панели задаёт переменную станции. Далее он садится в вагонетку и едет. Подъезжая к развилке КБ(командный блок) сканирующий присутствие игрока в радиусе 10-15 блоков узнаёт значение переменной и даёт ред сигнал под нужные рельсы. дабы направить игрока в нужную ветку.

Сейчас так и есть.

 

8 минут назад, DarkOfLife сказал:

Желательно, что бы и панель и появление вагонетки блочилось, пока есть вагонетка в метро

Нет - сейчас метро может использовать несколько человек одновременно.

 

8 минут назад, DarkOfLife сказал:

между ними можно поставить плотный лёд продвигаться по веткам без вагонетки.

Этот способ перемещения не обязательно совмещать с метро - скоростные дороги уже не раз пытались делать + некоторые есть в аду.

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×