Тема: «Многопоточность, лямбда функции»
Взяв за основу классы геометрических фигур и графический интерфейс, разработанные в курсовой работе, создайте программу, которая работает в многопоточном режиме и выполняет следующее:
1. Раз в определенный интервал времени на поле в случайную точку добавляется случайная фигура. При этом существует определенный максимум фигур, находящихся на поле одновременно. К примеру, не более 10 фигур.
2. Каждая фигура выбирает цель из других фигур, к которой начинает двигаться.
3. При столкновении фигура и ее цель удаляются. При этом учитываются только столкновения фигуры с ее целью, а столкновения с другими фигурами игнорируются.
Распределение на потоки осуществляется следующим образом:
1. Один поток отвечает за добавление фигур.
2. Второй поток отвечает за проверку наличия целей у каждой фигуры и присвоение новых целей для тех фигур, в которых предыдущая цель перестала существовать.
3. Третий поток перемещает фигуры в их цели и осуществляет проверку, столкнулись ли фигуры.
4. Четвертый поток отвечает за корректное удаление столкнувшихся фигур.
При выполнении работы продемонстрировать возможность передачи функций в поток в виде лямда-выражений.