JavaFX
Написать программу, являющуюся игрой в стиле” Duck shooter " в сочетании с TowerDefense. Во время игры слева направо и справа налево перемещаются утки разных цветов. Игра состоит в том, чтобы ”сбить” уток и не дать им попасть на другую сторону окна. Игрок стремится нажимать на утку столько раз, сколько нужно, чтобы ”сбить” его. Например, желтым объектам потребуется 1 клик, красным-5 кликов, фиолетовым-10, а розовым-20. Это примерные значения и цвета, которые вы можете свободно изменять. Цель игрока - сохранить как можно дольше чистое поле без уток. Игра заканчивается тем, что на другую сторону окна попадает более 10 уток (вы можете относиться к этому так, как если бы у игрока было 10 жизней, и каждый пропуск утки на другую сторону отнимает 1 Жизнь). Также необходимо реализовать препятствия (например, облака), которые будут покрывать цыплят и защищать их от щелчков. Вы должны предоставить полнофункциональный графический интерфейс. Командная консоль (CLI) может быть только информационной помощью, но не может быть никакого существенного взаимодействия пользователя с программой. Программа при запуске должна отображать главное меню, состоящее из опций:
* New Game - новая игра
* High Scores - таблица результатов
* Exit - выход
При запуске новой игры игроку будет предложено в отдельном окне, какую степень сложности он хочет сыграть (реализация любой степени сложности). При запуске игры в новом окне отображается игровая доска, и таймер (стоит отметить, что таймер должен быть реализован в отдельном потоке, чтобы не блокировать взаимодействие с окном). Во время игры должен быть виден счетчик очков и времени, обновляемый в реальном времени во время игры. Игра продолжается по вышеупомянутым правилам до тех пор, пока вы не потеряете все свои жизни. Вы должны предоставить возможность прервать игру в любое время с помощью выбранного вами комбинированного сочетания клавиш (Ctrl+Shift+Q), которое вернет вас в Главное меню. После завершения игры в новом окне игроку предлагается имя, под которым он должен быть сохранен в рейтинге. Ранжирование рассчитывается на основе времени и степени сложности (произвольная, собственная реализация). Вы должны обеспечить постоянство ранжирования при перезапуске приложения, то есть вы должны хранить его в файле на диске. Характер хранимых данных является второстепенным и не должен быть читаемым для игрока (можно использовать, например интерфейс Serializable). При выборе параметра ранжирования в главном меню он отображается пользователю. Поскольку окно ранжирования может быть относительно большим, необходимо позаботиться о правильном отображении ранжирования (полосы прокрутки), если оно не помещается в окно рационального размера.
Подсказки:
* Позаботьтесь об исключениях в программе. Если таковы имеются, необходимо отобразить их сообщение пользователю.
* Ранжирование должно быть выполнено с помощью компонента ListView.
* Не все окна должны быть реализованы через класс Application. С меньшими информационными окнами можно использовать диалоговые окна.
Используйте шаблон проектирования MVC в проекте. Проект должен быть выполнен с использованием технологии JavaFX!
Запрещается использовать инструменты WYSIWYG для создания окон (так называемые window / Scene Builder).
Запрещается использовать файлы FXML для разработки приложений.
Важной частью проекта является использование, в частности: наследования, коллекцию, интерфейсов или абстрактных классов, лямбда-выражений.
Актуальные фриланс-проекты в категории Java
Разработка Android-приложения плеера для сервиса онлайн-ТВ
27 000 UAH
Нужен Android-разработчик для создания нативного Android-приложения для сервиса онлайн-ТВ. Планируется две версии: для мобильных устройств: смартфоны и планшеты; для Android TV / Android STB: телевизионные приставки. Ориентировочные сроки: до 3 месяцев. Ориентировочный… Java, Разработка под Android ∙ 24 дня 21 час назад ∙ 31 ставка |