An open API service indexing awesome lists of open source software.

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

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`