Описание игры Сапер
Автор: Alex R • Март 12, 2021 • Реферат • 2,421 Слов (10 Страниц) • 327 Просмотры
1.1 Правила игры.
Есть игровое поле размером 9*9 клеточек. На поле в произвольном порядке расставляются 10 мин. На открытой клеточке появляется цифра. Она означает, сколько мин находится вокруг этой клеточки. Необходимо, руководствуясь данными о количестве мин вокруг клеточки, вычислить и открыть все клеточки, где нет мин.
1.2 Описание классов и методов программы «Mines».
Класс GameMines – это главный класс программы. Он унаследует все свойства класса JFrame. В данном класса происходит инициализация и отображение графического приложения. Также данный класс содержит точку входа в программу.
Поля класса GameMines:
- TITLE_OF_PROGRAM – название программы;
- SIGN_OF_FLAG – флаг («f»), устанавливающийся на клетке, в которой предположительно находится бомба;
- BLOCK_SIZE – размер одного блока;
- FIELD_SIZE – размер поля в блоке;
- FIELD_DX и FIELD_DY – коррекция размеров поля (определена экспериментально);
- START_LOCATION – отклонение от левого верхнего угла позиции окна при запуске программы;
- MOUSE_BUTTON_LEFT – значение, соответствующее нажатию левой кнопки мыши;
- MOUSE_BUTTON_RIGHT – значение, соответствующее нажатию правой кнопки мыши;
- NUMBER_OF_MINES – количество мин на поле;
- COLOR_OF_NUMBERS – массив со значениями номеров цвета;
- field – массив игровых клеточек;
- random – объект класса Random;
- countOpenedCells – количество открытых ячеек;
- youWon – флаг победы (успешного завершения игры);
- bangMine – флаг-удар по мине;
- bangX и bangY – координаты удара по мине;
Конструктор класса GameMines:
- GameMines() – конструктор класса. В данном конструкторе происходит вся инициализация игрового поля, а также добавление слушателя обработки нажатия на кнопки мыши.
Методы класса GameMines:
- public static void main(String[] args) – точка входа в программу;
- void openCells(int x, int y) – метод открытия ячейки. Метод принимает координаты по осям ‘x’ и ‘y’;
void initField() – метод инициализации игрового поля;
Класс Cell – класс, описывающий игровую ячейку. Данный класс знает все о конкретной ячейке.
Поля класса Cell:
- countBombNear – счетчик количества мин, расположенных вокруг данной ячейки;
- isOpen – флаг, открыта ячейка или нет;
- isMine – флаг, это мина или нет;
- isFlag – флаг, установлен флаг «f» на данной ячейке или нет;
Методы класса Cell:
- void open() – метод открытия ячейки;
- void setCountBomb(int count) – метод установки счетчика-количества расположенных мин рядом с данной ячейкой. Метод принимает на вход значение-количества мин;
- int getCountBomb() – метод получения значения количества рядом расположенных мин с данной ячейкой;
- boolean isNotOpen() – метод проверки – не открыта ли ячейка;
- boolean isMined() – метод проверки – находится ли в данной ячейке бомба;
- void inverseFlag() – метод инвертирования значения флага «f»;
- void paintBomb(Graphics g, int x, int y, Color color) – метод отрисовки мины в ячейке. Метод принимает на входе объект типа Graphics для рисования, координаты ‘x’ и ‘y’ для указания расположения бомбы и объект типа Color для указания цвета бомбы;
- void paintString(Graphics g, String str, int x, int y, Color color) – метод отрисовки текстовой надписи на ячейке. Метод принимает на вход объект типа Graphics для рисования, строке str, которую необходимо отрисовать, координаты ‘x’ и ‘y’ для указания расположения надписи и объект типа Color для указания цвета надписи;
- void paint(Graphics g, int x, int y) – метод отрисовки игрового поля (холста). Метод принимает на входе объект типа Graphics для рисования и координаты ‘x’ и ‘y’ для указания расположения необходимой отрисовки;
Класс Canvas – класс, описывающий игровое поле. Данный класс унаследует все свойства класса JPanel.
Методы класса Canvas:
- public void paint(Graphics g) – переопределенный метод класса JPanel. В данном методе отрисовывается все игровое поле (холст).
Класс TimerLabel – класс, описывающий счетчик времени. Данный класс унаследует все свойства класса JLabel.
...