Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hexagon

Игра Hexagon

Hexagon - игра, на которую я случайно наткнулся в интернете и решил повторить на Python (с использованием библиотеки pygame). Правила игры немного напоминают правила Тетрис. На игровом поле также нужно выстраивать полные линии, выкладывая фигурки, чтобы удалить их, с той лишь разницей, что поле в Hexagon состоит не из квадратиков, а из шестиугольных ячеек - гексов - и фигурки не падают сверху, а выбираются из случайным образом пополняемого "пула"

Код игры разбит на несколько файлов:

  1. start.pyw (с него происходит запуск игры, в нем находится основной игровой цикл)
  2. classes.py (в нем находятся классы, реализующие основную логику игры)
  3. utils.py (в нем находится несколько вспомогательных функций, например, для создания списка координат отдельных гексов и сглаживания их углов)
  4. settings.py (файл с настройками игры, такими например, как размер окна, размер гексов, цвет пустых гексов и т.д.)

Кратко о назначении отдельных классов:

  • Background - генерирует фоновый рисунок и отрисовывает его.
  • Hexagon, FieldHexagon, FigureHexagon - классы для представления гексов, входящих в фигуры, и гексов на игровом поле. Класс Hexagon является суперклассом для двух других, инкапсулирующим общие свойства и поведение.
  • Figure - служит для представления фигур из гексов. Хранит список входящих в фигуру гексов, позволяя обращаться к ним, как к отдельному целому объекту. Содержит много методов для делегирования поведения. Например, мы можем передвинуть фигуру на указанное смещение не передавая его напрямую каждому отдельному входящему в фигуру гексу, а передав требуемое смещение фигуре, соответствующий метод которой уже передаст его входящим в фигуру гексам.
  • Pool - генерирует весь комплект фигур и случайным образом отбирает фигуры из созданного комплекта для отдельных ходов.
  • Field - представляет игровое поле. Также содержит методы для удаления полных линий и определения наличия доступных ходов (если доступных ходов не осталось - игра прекращается).
  • DragAndDrop - реализует возможность перетаскивания фигур из пула на игровое поле с помощью мышки.
  • Tab - панель для отображения количества очков.

screenshot

screenshot

screenshot

About

Игра Hexagon

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages