{"id":27154446,"url":"https://github.com/elenadanchenko/arcanoid-winforms","last_synced_at":"2026-05-02T04:34:03.392Z","repository":{"id":245578771,"uuid":"783029881","full_name":"ElenaDanchenko/Arcanoid-WinForms","owner":"ElenaDanchenko","description":"Classic game / Arcanoid / C# / WinForms","archived":false,"fork":false,"pushed_at":"2024-06-22T12:53:11.000Z","size":895,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T14:23:32.922Z","etag":null,"topics":["classic-game","csharp-code","game-development","windows-forms"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ElenaDanchenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-06T18:37:16.000Z","updated_at":"2025-03-24T12:58:29.000Z","dependencies_parsed_at":"2024-06-22T22:09:17.991Z","dependency_job_id":"4656aab0-7b14-400a-970a-6fa65c610129","html_url":"https://github.com/ElenaDanchenko/Arcanoid-WinForms","commit_stats":null,"previous_names":["helenadan/arcanoid-winforms","elenadanchenko/arcanoid-winforms"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElenaDanchenko%2FArcanoid-WinForms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElenaDanchenko%2FArcanoid-WinForms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElenaDanchenko%2FArcanoid-WinForms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElenaDanchenko%2FArcanoid-WinForms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ElenaDanchenko","download_url":"https://codeload.github.com/ElenaDanchenko/Arcanoid-WinForms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247893550,"owners_count":21013921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classic-game","csharp-code","game-development","windows-forms"],"created_at":"2025-04-08T17:34:37.581Z","updated_at":"2026-05-02T04:34:03.367Z","avatar_url":"https://github.com/ElenaDanchenko.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `Arcanoid`\nПриложение «Арканоид» создано с использованием возможностей Windows Forms (WinForms) и представляет собой классическую аркадную игру с простым пользовательским интерфейсом, логикой игры и графическим отображением.\n\n«Арканоид» - игра, в которой игрок управляет платформой, отбивая мяч, который разрушает блоки на верхней части экрана. Цель игры - очистить экран от всех блоков, не давая мячу упасть за нижнюю границу.\nПри запуске игры открывается основное окно, представляющее собой простое окно Windows. В нем отображаются: \n- игровое поле, \n- интерактивные элементы: подвижная платформа, мяч, разрушаемые блоки \n- элементы управления игрой. \n\n## `UML Diagram`\n\n### Interface\n\u003cimg src =\"https://github.com/HELENADAN/WindowsFormsApp2/assets/67370982/13ae6698-27d7-4e43-a4c6-60d34930ed67\" width = \"370\"\u003e\n\n### Class Diagram\n\u003cimg src =\"https://github.com/HELENADAN/WindowsFormsApp2/assets/67370982/d45c1533-5c0d-4f5e-93f4-63e7e930c798\" width = \"370\"\u003e\n\n### Activity Diagram\n\n\u003cimg src =\"https://github.com/HELENADAN/WindowsFormsApp2/assets/67370982/c46451bd-e0cf-4ead-b024-30210957477e\" width = \"370\"\u003e\n\n\n## `Object Model`\n* Object field - предоставляет пространство ограниченное границами, на котором размещены: платформа (внизу), мяч, блоки серого/черного цвета. Представлено двумерным массивом field размеров Width, Height, содержащим объекты типа GameObj. В данном классе присутствуют такие методы как конструктор самого поля, с определением позиций платформы, мяча, метод генерации блоков в зависимости от выбранного уровня сложности (GenerateBlocks()), а также метод добавление новой линии блоков (AddLine()), кроме того в данном классе присутствуют методы ответственные за рисовку игрового поля и элементов игры на холсте.\n* Object platform – компонент игры, управляется игроком с помощью стрелок на клавиатуре и используется для отбивания мяча. Платформа представлена в массиве field тремя объектами: левой, центральной и правой частями, каждая из которых имеет свой код. \n* Object ball - движется по игровому полю и разрушает блоки.\n* Object block – существуют в вариантах серого и черного цвета, и столкновения с ними обрабатываются по-разному: столкновение с черным блоком  приводит к его замене на серый блок. Столкновение с серым блоком приводит к его уничтожению и начислению очков игроку.\n* Object player – объект содержит информацию о состоянии игрока: жизни и очки,  а также методы для управления этими элементами.\nОписание элементов интерфейса пользователя\n* Object Form - предоставляет визуальное представление игры. Содержит в себе элементы типа меток (кнопки, радиокнопки), также здесь находятся некоторые элементы механики игры. \n* Object logic - управляет коллизиями (столкновениями) мяча с разными компонентами: границы поля, блоки. Также описывает разрушение блоков  и начисление очков.\nОписание абстрактных классов\n* Object gameobj – содержит следующие общие методы для своих наследников: сеттеры и геттеры для координат объектов, геттер для кода объекта, метод рисования объекта.\n* Enum DifficultyLevel - задает уровень сложности игры: Easy, Medium, Hard.\n\n## `Demo`\n\u003cimg src = \"https://github.com/HELENADAN/WindowsFormsApp2/assets/67370982/e7103f4c-c041-460a-b0f4-5b57d5c20f1e\" width = \"370\"\u003e\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felenadanchenko%2Farcanoid-winforms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felenadanchenko%2Farcanoid-winforms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felenadanchenko%2Farcanoid-winforms/lists"}