M.A.X.    Вы вошли как гость
Российский Клуб игроков M.A.X.
 
[Новости]   [Новичку]   [Энциклопедия]   [Документы]   [Файлы]   [Игроки]   [Архивы]   [Архив форума]  
[Новый сайт]   [M.A.X. Gold]   [Партии]  

 
 
 
Архив форума  МаксГолд
[Основной форум] [Голосования] [МаксГолд] [Off-Topic]
 


любишь усложнять  -  Burn,  16.02.2011  12:08:14

Мне не нравится, что маршрут будет отменяться, если целевая клетка занята.
Я рад, что во вселенной нашлось мнение, отличное от правильного. :)

Возможно клетка занята лишь временно, тогда можно клетку освободить и опять выполнить команду движения (Готово).
А ещё возможно клетку освободить и опять отправить самолёт по тому же маршруту. Сложность алгоритма действий аналогичная.

Было бы логичнее либо просто игнорировать выполнение команды, Ну, это совсем легко. Я так понял, что этот вариант для тебя не приоритетен? А зря, его как раз можно просто реализовать, в отличие от:
либо выполнить её насколько возможно, то есть по маршруту откатиться назад и найти клетку, в которую лететь можно. Соответственно только до неё и долететь. Однако проложенный маршрут пусть по прежнему указывает на прежнюю занятую клетку. Неплохо, но Artlav и так не может убрать злой баг авиабашен, а с таким усложнением алгоритма, боюсь, ситуация только усугубится.

Кстати, приведённый выше алгоритм никак не разруливает параллельное (одновременное) движение нескольких самолётов. По прежнему можно будет дать двум самолётам задачу двигаться в одну и ту же клетку и передать ход или быстро обоим дать команду Готово. Да. Совсем никак. А все вычисления у нас идут прям так параллельно-параллельно, совсем как в многозадачной системе Windows. Ну, то есть, не будет такого, что один самолёт вдруг окажется первым в очереди обработки событий и полетит к своей заветной целевой клетке, а второй остановится, т.к. в момент обработки события для него целевая клетка уже будет занята? Наверное, надо просто очень быстро жать на кнопку Готово :)

    ответы :