Jump to content
Admin

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

Recommended Posts

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

Описание на 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  

 

 

Share this post


Link to post
Share on other sites

@EChris_, если будет время и желание, то можем вместе в игре потупить какую-нибудь косячную развязку - я покажу, как их проверять и фиксить.

Это относительно не сложно: просто надо в голове вкурить дерево квадрантов, направления, слои, маршруты и пофиксить пару циферок 😄

Share this post


Link to post
Share on other sites

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

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

Впринципе, можно будет.

 

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

относительно не сложно

😄 Ага, относительно 😉 

Share this post


Link to post
Share on other sites
Достижения

В 01.05.2018 в 14:56, Admin сказал:

42 → 33

  • на 29 развязке кружит

@RedTeapot, можно твою консультацию?
Взялся я тут за развязки...

Итак, берём 29-ую развязку.
В случае моего маршрута из цитаты мы приезжаем сверху - на третью стрелку, которая норм отрабатывает. И вторая тоже норм кружит )

Проблема, имхо, в стрелке №1.
 

Спойлер

 

uVO8Zdy.png

 


Вот команды из кб и значения моих переменных:

Спойлер

 

Стрелка №1

/execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=1,score_metro_st_l_0=3] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

/execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=2,score_metro_st_l_2=2] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

/execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=3,score_metro_st_l_2=3,score_metro_st_l_3_min=2,score_metro_st_l_3=2] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

/execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=3,score_metro_st_l_2=3,score_metro_st_l_3_min=1,score_metro_st_l_3=1,score_metro_st_l_4_min=1,score_metro_st_l_4=1] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

 

Стрелка №2

/execute @p[x=-650,y=33,z=-464,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=0,score_metro_st_l_1=1] ~ ~ ~ setblock -652 33 -464 minecraft:rail 9

/execute @p[x=-650,y=33,z=-464,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=3,score_metro_st_l_1=3] ~ ~ ~ setblock -652 33 -464 minecraft:rail 9

/execute @p[x=-650,y=33,z=-464,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=0,score_metro_st_l_2=1] ~ ~ ~ setblock -652 33 -464 minecraft:rail 9

 

Стрелка №3

/execute @p[x=-657,y=33,z=-464,r=2,score_metro_st_l_0_min=0,score_metro_st_l_0=0,score_metro_st_l_1_min=2,score_metro_st_l_1=2,score_metro_st_l_2_min=3,score_metro_st_l_2=3,score_metro_st_l_3_min=0,score_metro_st_l_3=0] ~ ~ ~ setblock -659 33 -464 minecraft:rail 1

 

Значения переменных

metro_st_l_0 = 2

metro_st_l_1 = 2

metro_st_l_2 = 3

metro_st_l_3 = 0

metro_st_l_4 = 3

 

 

 

Вангую, что проблема в кб с командой, которая в спойлере выделена красным цветом:

  • /execute @p[x=-650,y=33,z=-461,r=2,score_metro_st_l_0_min=1,score_metro_st_l_0=3] ~ ~ ~ setblock -648 33 -461 minecraft:rail 1

 

Но я вообще не понимаю, как мне фиксить эту команду, чтобы ничего не сломать )))
Можешь направить меня в правильное русло? 🙂

 

  1. По каким критериям мы генерим такое условие - для чего?
  2. Вряд ли же будет достаточно - просто исключить двойку?
    • или всё же что-то подобное и надо сделать, например, тупо оставив только единицу?

 


 


UPD:

Тупняк - похоже тупо r=2 не добивало до игрока - поменял на r=5 😄
 

Share this post


Link to post
Share on other sites

В 01.05.2018 в 14:56, Admin сказал:
  • 29 → 42
  • 42 → 33
    • на 29 развязке кружит
  • 33 → 27
    • на 28 развязке кружит

 

В 01.05.2018 в 15:06, RedTeapot сказал:

Итак.

24 -> 33, кружит на развязке 29 (не выпускает с нее никуда).

1 -> 38, кружит на развязке 38 (не выпускает).

 

Починил:

  • на 29-ой развязке не добивало условие r=2 - заменил на r=5 (на некоторых других тоже)
    • ещё Чайник предположил, что проблема не в r=2, а в неверном центре координат = можно будет слетать проверить (но имхо, там реально один из кб тупо далеко; хоть и не тот, который не срабатывал)
  • на 28-ой развязке было неверное условие для первого уровня квадрантов
  • на 38-ой равязке не было минуса перед координатой Z, но там дальше ещё косяки по маршруту (Чайник, ты после глюка не поехал дальше?)
    • убрал пару лишних разгонных рельс без питания на развязках
    • добавил отсутствующие рельсы в некоторых местах
    • сейчас затык на 48-ой развязке и там сложно... такое ощущение, что для станции указано неверно место назначения (первый квадрант вместо нулевого) = я пока такое не умею фиксить... @RedTeapot, можешь глянуть (если есть возможность)?

 

 

Share this post


Link to post
Share on other sites

Мысли от мистера Чайника на будущее - вдруг, до новых веток доберёмся...

 

Цитата

Случайно про метро мысля пришла. Вроде, так я еще не пробовал: найти кратчайший путь до станции B, пройтись по промежуточным развязкам и в каждой прописать, в каком направлении находится следующая развязка данного пути. Повторить для всех станций. Потом эти прописанные пути сгруппировать, насколько это возможно. Правда, хз, не увеличит ли это количество КБ на развязках до небес

 

Share this post


Link to post
Share on other sites

Да, пишу на будущее для себя.

Перебираем все станции. Для станции A перебираем все станции (получаем пары станций A-B). Находим кратчайший путь от A до B, пусть он состоит из развязок c1...cn. Для развязки ci сохраняем направление на развязку c(i+1) и станцию B.

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

  • Diamond 1

Share this post


Link to post
Share on other sites

@Admin

Рад что метро не заглохло без меня.

За физическое его создание как руководителю проекта прошу начислить мне оплату.

Считаю что работа моя была выполнена в полном обьеме.

Физическое создание плюс КБ с техническими помещениями и вписание команд сгенерированных на тот момент это то за что я брался и что сделал.

   Ahnaton.

Share this post


Link to post
Share on other sites
Достижения

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×