Написать аналог игры Сапер (Minesweeper) из состава стандартных программ для Windows OS;
- Архитектура программы должна быть основана на паттерне
MVC (Mode-View-Controller); - Программа должна иметь два интерфейса – текстовый и графический, причем оба интерфейса должны использовать одну и ту же игровую модель (классы данных и логики должны быть одинаковые для текстового и графического интерфейсов);
- Размер поля и количество мин можно изменить. По умолчанию поле размером
$9x9$ и количество мин - 10; - Игра должна поддерживать таблицу рекордов.
- Пользователю должны быть доступны команды:
-
Exit; -
About; -
New Game; -
High Scores;
-
- Отчет времени должен быть реализован отдельным потоком;
/ru/nsu/ccfit/ФАМИЛИЯ/minesweeper – основные классы программы;
/ru/nsu/ccfit/ФАМИЛИЯ/minesweeper/text – классы текстового интерфейса пользователя;
/ru/nsu/ccfit/ФАМИЛИЯ/minesweeper/gui – классы графического интерфейса;
/ru/nsu/ccfit/ФАМИЛИЯ/minesweeper/resources – картинки и другие ресурсы;
- Команды пользователя вводятся с консоли, ячейки нумеруются от нуля;
- После каждого хода игрока все игровое поле распечатывается на экран целиком;
- Мины и флажки отображать с помощью картинок;
- При формировании окна игры использовать класс
LayoutManager. Для расположения элементов на игровой панели рекомендуется использовать классGridBagLayout. Для расположения ячеек поля рекомендуется использовать классGridLayout;
- Шаблон проектирования
MVC: - Для реализации пользовательского интерфейса использовать библиотеку
Swing(классы из пакетаjavax.swing.*). - Работа с компонентами пользовательского интерфейса (классами библиотеки
Swing) должна проходить только из UI потока. - Для отображения диалоговых окон рекомендуется использовать класс
JOptionPane.