Написать аналог игры Сапер
(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
.