Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

ЧАСТЬ 2. ИНСТРУКЦИЯ ПРОГРАММИСТА



Класс TetrisDlg

Класс TetrisDlg представляет собой класс для управления отображением компонентов главного окна программы, интеграции с второстепенными модулями. Содержится в файлах tetrisdlg.h, tetrisdlg.cpp.

Публичные члены:

· CTetrisDlg (CWnd* pParent) – конструктор класса; инициализирует компоненты интерфейса, загружая ресурсы программы;

· ~CTetrisDlg () – стандартный деструктор.

· Void Update() – метод позволяющий обновлять содержимое интерфейса, проверять статус игры.

· Void AdjustFrame() – метод определяющий размеры и свойства игровых окон.

· Void Initialize() – запускает таймер, и генерацию блоков.

· Void UpdateBlock() – выбирает блок из очереди, с определенными параметрами вывода. И переносит его по оси ординат без участия пользователя.

· Void UpdateWindow() – обновляет содержимое окна, элементов интерфейса, выбирает следующую фигуру, поля отображения успеха игрока.

· Void NextRandomBlock() – случайным образом выбирает следующий блок.

· Void NextrandowColor() – случайным образом выбирает следующий цвет.

· Block BlockFromIndex(BYTE i) – метод необходимый для выбора блока, предоставляет создание объекта того типа блока который был выбран.

· Block CheckLine(Byte row) – проверяет целостность всех столбцов поля.

· Void RemoveLine(Byte row) – удаляет линию если она удовлетворяет условию удаления, также здесь описан механизм исчезновения и сдвига необходимых блоков по вертикальной оси.

· Void IsGameOver(Block blockType) – проверяет координаты последнего остановившегося блока, если они подходят под описанные для завершения условия, возвращает TRUE.

· Void GameOver() – при вызове убивает таймер, обновляет статус игры, запрещает использование кнопок.

· Void OnPaint() – меняет статус игры при сворачивании окна.

· Void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) – реализует взаимодействие пользователя с конечной фигурой, определяет по нажатию клавиши перемещение тетромины по полю.

· Void OnLButtonUp(UINT nflags, cPoint point) – определяет по координатам курсора мыши дополнительные параметры игры (пауза, конец, начало, остановка).

· Void OnMouseMove(UINT nFlags, cPoint point) – в зависимости от координат курсора мыши обновляет статус m_mouseOver.

· Void OnTimer(UINT_PTR nIDEvent) – метод для проверки возможности перемещения блоков, удаления строк со сдвигом, статус завершения игры.

· Void OnGameNew() – при вызове начинает игру с обновлением результата и уровня в соответствии с выбором.

· Void OnGamePause() – при вызове убивает таймер, если таймер уже убит, запускает его заново. В начале игры кнопка запрещена для использования.

· Void OnGameStop() – убивает таймер с обнулением результатов.

· Void OnLevelBeginner() – предоставляет возможность выбора легкого уровня сложности.

· Void OnLevelIntermediate() – предоставляет возможность выбора среднего уровня сложности.

· Void OnLevelAdvansed() – предоставляет возможность выбора трудного уровня сложности.

· Void OnLevelExpert() – предоставляет возможность выбора экспертного уровня сложности.

· Void OnLevelDevil () – предоставляет возможность выбора невозможного уровня сложности.

· Void OnLevelHell() – предоставляет возможность выбора последнего уровня сложности. Увеличение сложности реализуется через уменьшение коэффициента периода таймера.

· Void OnGameExit() – при вызове закрывает окно программы

 

Блок-Схема игры «Тетрис»

 

 

Класс BlockL

Данный модуль реализует возможность отображения L-образного блока, предоставляет описание взаимодействия с ним, ось его вращения, методы для проверки передвижения по полю.

L–тетрамино (оно же J) асимметрично и может быть ориентировано 8 способами — 4 поворота и 2 зеркальных отражения.

Рис. 1 (L – тетрамино)

Класс BlockJ

Данный модуль реализует возможность отображения J-образного блока, предоставляет описание взаимодействия с ним, ось его вращения, методы для проверки передвижения по полю.

J–тетрамино (оно же L) асимметрично и может быть ориентировано 8 способами — 4 поворота и 2 зеркальных отражения.

Рис. 2 (J – тетрамино)

Класс BlockO

Данный модуль реализует возможность отображения O-образного блока, предоставляет описание взаимодействия с ним, ось его вращения, методы для проверки передвижения по полю.

О–тетрамино совпадает с собой при зеркальном отражении и при любых поворотах на углы, кратные 90°, и может быть ориентировано единственным образом

Рис. 3 (O – тетрамино)

Класс BlockI

Данный модуль реализует возможность отображения I-образного блока, предоставляет описание взаимодействия с ним, ось его вращения, методы для проверки передвижения по полю.

I–тетрамино имеет две оси симметрии и может быть ориентировано 2 способами — поворотами.

Рис. 4 (I – тетрамино)

Класс BlockS

Данный модуль реализует возможность отображения S-образного блока, предоставляет описание взаимодействия с ним, ось его вращения, методы для проверки передвижения по полю.

S–тетрамино (оно же Z) совпадает с собой при повороте на 180° и может быть ориентировано 4 способами — 2 поворота и 2 зеркальных отражения.

 

Рис. 5 (S – тетрамино)

 

Класс BlockT

Данный модуль реализует возможность отображения T-образного блока, предоставляет описание взаимодействия с ним, ось его вращения, методы для проверки передвижения по полю.

T–тетрамино имеет осевую симметрию и может быть ориентировано 4 способами — поворотами.

 

Рис. 6 (T – тетрамино)

Класс BlockZ

Данный модуль реализует возможность отображения Z-образного блока, предоставляет описание взаимодействия с ним, ось его вращения, методы для проверки передвижения по полю.

Z–тетрамино (оно же S) совпадает с собой при повороте на 180° и может быть ориентировано 4 способами — 2 поворота и 2 зеркальных отражения.

Рис. 7 (Z – тетрамино)

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.