Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Описание игры Сапер

Автор:   •  Март 12, 2021  •  Реферат  •  2,421 Слов (10 Страниц)  •  326 Просмотры

Страница 1 из 10

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.

...

Скачать:   txt (18 Kb)   pdf (195.7 Kb)   docx (48.1 Kb)  
Продолжить читать еще 9 страниц(ы) »
Доступно только на Essays.club