https://github.com/elenadanchenko/arcanoid-winforms
Classic game / Arcanoid / C# / WinForms
https://github.com/elenadanchenko/arcanoid-winforms
classic-game csharp-code game-development windows-forms
Last synced: about 2 months ago
JSON representation
Classic game / Arcanoid / C# / WinForms
- Host: GitHub
- URL: https://github.com/elenadanchenko/arcanoid-winforms
- Owner: ElenaDanchenko
- Created: 2024-04-06T18:37:16.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-22T12:53:11.000Z (almost 2 years ago)
- Last Synced: 2025-03-24T14:23:32.922Z (about 1 year ago)
- Topics: classic-game, csharp-code, game-development, windows-forms
- Language: C#
- Homepage:
- Size: 874 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# `Arcanoid`
Приложение «Арканоид» создано с использованием возможностей Windows Forms (WinForms) и представляет собой классическую аркадную игру с простым пользовательским интерфейсом, логикой игры и графическим отображением.
«Арканоид» - игра, в которой игрок управляет платформой, отбивая мяч, который разрушает блоки на верхней части экрана. Цель игры - очистить экран от всех блоков, не давая мячу упасть за нижнюю границу.
При запуске игры открывается основное окно, представляющее собой простое окно Windows. В нем отображаются:
- игровое поле,
- интерактивные элементы: подвижная платформа, мяч, разрушаемые блоки
- элементы управления игрой.
## `UML Diagram`
### Interface

### Class Diagram

### Activity Diagram

## `Object Model`
* Object field - предоставляет пространство ограниченное границами, на котором размещены: платформа (внизу), мяч, блоки серого/черного цвета. Представлено двумерным массивом field размеров Width, Height, содержащим объекты типа GameObj. В данном классе присутствуют такие методы как конструктор самого поля, с определением позиций платформы, мяча, метод генерации блоков в зависимости от выбранного уровня сложности (GenerateBlocks()), а также метод добавление новой линии блоков (AddLine()), кроме того в данном классе присутствуют методы ответственные за рисовку игрового поля и элементов игры на холсте.
* Object platform – компонент игры, управляется игроком с помощью стрелок на клавиатуре и используется для отбивания мяча. Платформа представлена в массиве field тремя объектами: левой, центральной и правой частями, каждая из которых имеет свой код.
* Object ball - движется по игровому полю и разрушает блоки.
* Object block – существуют в вариантах серого и черного цвета, и столкновения с ними обрабатываются по-разному: столкновение с черным блоком приводит к его замене на серый блок. Столкновение с серым блоком приводит к его уничтожению и начислению очков игроку.
* Object player – объект содержит информацию о состоянии игрока: жизни и очки, а также методы для управления этими элементами.
Описание элементов интерфейса пользователя
* Object Form - предоставляет визуальное представление игры. Содержит в себе элементы типа меток (кнопки, радиокнопки), также здесь находятся некоторые элементы механики игры.
* Object logic - управляет коллизиями (столкновениями) мяча с разными компонентами: границы поля, блоки. Также описывает разрушение блоков и начисление очков.
Описание абстрактных классов
* Object gameobj – содержит следующие общие методы для своих наследников: сеттеры и геттеры для координат объектов, геттер для кода объекта, метод рисования объекта.
* Enum DifficultyLevel - задает уровень сложности игры: Easy, Medium, Hard.
## `Demo`
