169 похожих чатов

Привет. Подскажите, как реализовать функционал по типу очереди заданий на

выполнение?

Симулятор лифта. Есть лифт и этажи. Если лифт свободен и не на этаже, то при нажатии кнопки этажа лифт едет к нему. Скорость езды — 1 этаж /секунда.
По прибытию на этаж лифт стоит 3 сек на месте, далее готов к отправке на другие этажи.

Когда лифт уже в движении на этаж, то при нажатии других кнопок они падают в очередь на выполнение.

(соответственно лифт сначала выполнит текущую задачу, подождёт 3 сек на этаже и поедет к новой).

Я реализовал это через массив задач, в который пушаться этажи, куда нужно ехать.

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

Если есть только одна задача, лифт её выполнил и я удалил задачу с массива, то вотчер тригерит сам себя и говорит, что нет id у задачи (потому что массив пустой, нет элементов).

Есть ли какое-то более элегантное решение? Или надо как-то проверять, чтобы вотчер сам себя не тригерил

14 ответов

68 просмотров

это обязательно на вью делать?

Мне кажется, ты в мою контору тестовое делаешь :)

Очень советую сделать эту задачу с визуализацией.

Небольшая подсказка, у вас есть push, pop, shift, unshift.

Можно отслеживать не изменения массива, а изменения его длины. Тогда если длина уменьшилась — ничего не делаем.

А зачем вам вообще вотчет?

Winston Smith- Автор вопроса

Очень прикольная задачка, мне нравится. Как раз на джуна, без большого скоупа работы.

Winston Smith- Автор вопроса

☝🏻

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта