Необходимо написать игру Xonix на Delphi. Шарик двигается по игровому полю, отскакивая от стенок. Курсор двигается по контуру и отсекает куски игрового поля. Если траектория образует замкнутый контур до того, как траектория шарика пересечет траекторию курсора, кусок поля считается отрезанным и в нем проявляется часть изображения. Условие победы - 70% поля отрезано от шарика. Отрезанной считается часть поля без шарика. Размер игрового поля определяется размером загруженной картинки. Картинка по умолчанию есть, но есть опция загрузить свою. Шарик стартует из фиксированного места, но в рандомном направлении (возможно задать поворот направления на какой-то угол при каждом последующем запуске). Отскок от стенки происходит по принципу "угол падения равен углу отражения" (строится нормаль к поверхности) На игровое поле "наложены " 2 невидимых изображения: одно - загруженная картинка, которая потом становится видна пользователю, вторая - контрольная, которая на начальном этапе представляет собой черную рамку со срезанными углами. Как только курсор замыкает контур - кусок заливается черным. Шарик при движении постоянно "проверяет" следующие на пути пиксели, пока не наткнется на черное поле (задать определение различий между следом курсора и рамкой/заливкой возможно по количеству последовательных черных пикселей).
В игре 3 уровня. На каждом уровне появляется новый шарик со своей траекторией, и скорость шариком возрастает на 10% от начальной. Попыток прохождения 3, потом окошко "Вы проиграли" и начать с начала. Пуск игры из меню "меню" со списком команд "загрузить изображение, начать игру, Рекорды, спарвка". Справка выдает маленькое окошко с краткими правилами. В таблицу рекордов (5 позиций) заносятся очки (сумма процентов отрезанных изображений на всех этапах), запрос на ввод имени.
Возможно обсуждение каких-то пунктов, оплата обсуждаема в пределах +-500руб (но ОБОСНОВАННО!)
На выходе хочу увидеть, собственно, файл приложения, все файлы, которые выдаст Delphi при работе с проектом, особенно код с комментариями, блок схему, картинку, которую вы возьмете за начальную.