Создание игры «Настольный теннис» (Creating a Ping-Pong Game with C#)

Text
Read preview
Mark as finished
How to read the book after purchase
Создание игры «Настольный теннис» (Creating a Ping-Pong Game with C#)
Font:Smaller АаLarger Aa

© Сергей Александрович Евдокимов, 2023

ISBN 978-5-0059-9407-3

Создано в интеллектуальной издательской системе Ridero

Добро пожаловать в мир программирования!

Учебная и научная литература

для начинающих программистов


 
Создание игры «Пинг-Понг» на C Sharp
(Creating a Ping-Pong Game with C#)
 

Для достижения указанных целей было изучено литературу по компьютерным технологиям, по системам управления базами данных, особенности графических приложений, высокоуровневым языкам программирования. Считаю, что эта работа выполнена на достаточно высоком уровне и заслуживает продолжения…

 
Ping Pong – популярный проект для новичков
и начинающих программистов, разработанный
на C Sharp…
 
ЕВДОКИМОВ Сергей Александрович

Изучаем высокоуровневое программирование на C Sharp!

Это первое издание книги
© Сергей Евдокимов, 2015—2023

ОПРЕДЕЛЕНИЕ, ОБОЗНАЧЕНИЕ И СОКРАЩЕНИЕ

 
API – Application Programming Interface;
ADO – ActiveX Data Objects;
AT&T – American Telephone and Telegraph;
COM – COMmunication;
DB – DeciBel;
DVD – Digital Video Disc;
DSP – Digital Signal Processor;
DFD – Data Flow Diagram;
IBM – International Business Machines;
JoL – Jaques of London;
LINQ – Language-Integrated Query;
LDA – Latent Dirichlet Allocation;
MS – Microsoft Studio;
MFC – Microsoft Foundation Classes;
MDF – Media Descriptor File;
MVS – Multiple Virtual Storage;
MVC – Model-View-Controller;
NB – New B;
OS – Operating System;
PL/I – Programming Language One;
RGB – Red Green Blue;
SSMS – SQL Server Management Studio;
SPI – Serial Peripheral Interface;
SQL – Structured Query Language;
TV – TeleVision;
USB – Universal Serial Bus;
UIPAB – User Interface Process Application Block;
VB.Net – Visual Basic. NET;
VCC – Voltage of the CirCuit;
VS – Visual Studio;
WF – Windows Form;
XML – eXtensible Markup Language.
 
 
БД – База данных;
ВУЗ – Высшее учебное учереждение;
ГОСТ – ГОсударственный СТандарт;
ИК – Инфо-красный (а);
ПО – Програмное Обеспечение;
КИ – Конфиденциальная информация;
MТИ – Массачусетский технологический институт;
ИТ – Информационные технологии;
ИИ – Исскуственный интелект;
ИНС – Исскуственные нейронные сети;
МОТ – Международная организация труда;
МК – Микроконтроллер;
МП – Микропроцесор;
НП – Нискоуровневое программирование;
ООН – Организация Объединённых Наций;
ООП – Объектно-ориентированное Программирование;
ОС – Операционная система;
ПК – Персональный компьютер;
ПС – Програмная Среда;
ПЗУ – Постоянное запоминающее устройство;
РБД – Реляционная база данных;
ЧП – Черезвычайное положение;
ЭВМ – Электронная вычислительная машина;
ЯП – Язык программирования.
 
 
англ. – английский;
В – Вольт;
Выкл. (Вкл.) – Выключить (Включить);
Вт – Ватт;
др. – другие;
ок. – октава;
общ. – общий;
Рис. – Рисунок;
стр. – страница;
см. – смотреть;
сост. – состояние;
Табл. – Таблица;
т. д. – так далее;
т.е. – то есть;
шт. – штука (штук).
эл. – элемент;
ч. – часть.
 

ВВЕДЕНИЕ

Актуальность темы исследования. Развитие культуры в нашем столетии неуклонно идет вместе с развитием многообразных технологий, например компьютерных. Компьютерный рынок непрерывно заполняется более ранними, более совершенными программами, увеличивается скорость процессоров, объем носителей хранения памяти. В этой «технологической революции» не последнее место занимает событие, появившееся вместе с компьютерами, а именно: компьютерные игры [1]. Сейчас, хоть люди и стали деловыми, но время на развлечения они всегда находят. Кое-кто выбирает активный отдых (путешествие, спортивные игры, квесты), а кто-то предпочитает более пассивный отдых, к ряду которых можно отнести не только просмотр кинофильмов, но и компьютерные игры. В Украине ежегодно растет количество людей, покупающих подобные игры. Если для игроков это просто игрушка и шанс отдыха, то для разработчиков и распространителей – целая сфера деятельности [2]. Все это, в совокупности с фактом роста количества компьютеров и увлечения людьми играми, говорит о том, что вопрос нуждается в исследовании по направлению ряда наук, и программированию в первую очередь.

Цель данной работы заключается исследование и разработка игры Пинг-Понг, язык написания игры будет служить в моем случае С Sharp, и написание игры подробно, в деталях, рассказав о различных элементах приложения, создавая программу.

Задания к данной работы:

– Используя произвольный язык и среду программирования разработать программное приложение-игру «Пинг-понг»;

– Объяснить детали и сущность частей программы;

– исследовать процесс создания игры на платформе Microsoft Visual Studio 2022;

– сформировать общий вывод работы.

Объект исследования – программное приложение-игра «Пинг-понг».

Предмет исследования – создание компьютерной игры в программной среде.

Платформа создания игры – исследование игры и процесс написание будут оформлены таким ПС при разработке создания игр как Microsoft Visual Studio.

Язык написания игры – C Sharp.

Структура данной работы обусловлена поставленными целями, задачами и характером исследования. Сама работа состоит из введения, четырёх глав, общего заключения, приложений, использованных сокращений, списка использованных источников, семи дополнений.

РАЗДЕЛ 1. АНАЛИТИЧЕСКАЯ ЧАСТЬ

1.1 Постановка задания

Используя произвольный язык и среду программирования разработать программное приложение-игру «Пинг-понг». Суть игры заключается в отражающем мячике игроку, отражающем его с помощью ракетки. Программа должна проверять, отбил ли игрок мяч и сообщать пользователю о результатах отбитых мячей во время игры.

Структура проекта:

– модуль, отображающий главное меню игры;

– модуль, отображаемый по окончании игры;

– модуль, отображающий игровое поле;

– модуль, отображающий результаты отбитых мячей;

– модуль, отображающий справку пользователя;

– модуль, отображающий состояние звука (Вкл./Выкл.).

Входные данные:

– состояние звука (Вкл/Выкл);

– соследующие действия (нажатая клавиша) по окончании игры.

Исходные данные:

– количество «отбитых» мячей пользователем;

– состояние звука (Вкл./Выкл.);

– справка о дальнейших действиях по окончании игры;

– интерфейс программы должен содержать следующие элементы: главное меню, форма с информацией о разработчике, состояние звука (Вкл./Выкл.);

– приложение должно давать возможность изменять состояние звука в игре – при включенном будет играть мелодия и будет работать звук в игре.

Во время игры программа должна разрешать:

– выйти из игры;

– перезапустить игру;

– Выкл/Вкл. звук.

1.2 Анализ задания

Рассмотрение предметной области приложения «Пинг-понг» показало, что основной проблемой является реализация полета мячика и его реалистичное отражение от игрового поля и ракетки игрока, а также разработка такого интерфейса, который смог бы успешно конкурировать с подобными играми.

Для решения проблемы была выбрана работа с таймером и изменение направления полета мяча с помощью векторов.

Посреди аналогов были проанализированы следующие игры: 2D Ping Pong, Легенды Пинг Понга, Table Tennis Angry Birds, Настольный теннис 2D.

Полученная (после обработки данных) на экране монитора графическая информация очень удобна для анализа и описания сложных явлений на практике. Более того, эта графическая информация может использоваться в следующих вычислениях, на основании которых мы получим новые данные, которые снова можем предоставить в виде новой графической информации, которая может использоваться в новых расчетах и т. д. [5].

Высшим приоритетом можно считать удовлетворение работы данными ПО в определенные сроки. Программа, которая работает без ошибок – это главный показатель прогресса и основное достижение в проекте. А в простоте – искусство для достижения чего-то большего, при этом делая меньше, что является «Основа основ». Разработчики должны время от времени задумываться по эффективности, и соответственно редактировать и подстраивать свое поведение [6].

1.3 Выбор методов и способов решения задания

Для написания игрового приложения Пинг-понг была выбрана программа Visual Studio 2022 с интерфейсом Windows Forms (API), ориентированная на разработку привлекательного и удобного интерфейса (графического).

Microsoft Visual Studio – это линейка инструментов и служб по созданию разных приложений для платформы Microsoft, а также для других. Независимо от используемого средства разработки, есть возможность более гибко работать, и главное – где угодно [7].

Visual Studio 2022 – это передовое решение для разработки, позволяющее командам любого размера проектировать и создавать привлекательные программы, которые удовлетворят требования заказчиков.

 

Windows Forms – это такой интерфейс для программирования приложений (API), который отвечает за пользовательский интерфейс (графический), что является частью. NET Framework компанни Microsoft. Этот интерфейс значительно упрощает возможность для получения доступа к элементам интерфейса ОС Windows, так как за счет создания обвертки API для уже существующего в управляемом коде Win32 [8]. Учитывая то, что этот код – это классы, которые реализуют API для библиотеки Windows Forms, не зависящие от языка разработки. То есть программист все равно использует Windows Forms в написании прогромного обеспечения на C Sharp, С++, также на VB.Net, J# и т. д.

Библиотека Windows Forms разрабатывалась как элемент к. NET Framework для облегчения разработки составляющих графического и пользовательского интерфейса [9]. Windows Forms построена на основе устаревшего Windows API и представляется как обвертка низкоуровневых компонентов ОС Windows.

С помощью библиотеки Windows Forms предоставляется возможность для разработки кроссплатформенных графических пользовательских интерфейсов. Но всё же, Windows Forms до сих пор является только обверткой для API-компонентов ОС Windows, и ряда ее методов, которые могут осуществлять прямой доступ к функциям Win32 и обратного вызова, что недоступны на других платформах [10].

Готовое приложение на Windows Forms представляет ориентированное программное обеспечение, поддерживающее. NET Framework. от компании Microsoft. Большая часть времени тратится на ожидания от пользователя любых действий, В отличие от пакетных программ. К напримеру, в текстовом поле – ввод текста или по кнопке – щелчок мышкой.

С одной стороны, библиотеку Windows Forms можно рассматривать как замену с более старой и сложной библиотекой MFC, которая первоначально была написана на C++. С другой же стороны, WF не предпочитает парадигму, что сравнима с MVC. Для исправлений в этой ситуации и реализации функциональности в WF есть посторонние библиотеки. Такой одной, которые больше всего используются является UIPAB, которая была выпущена отдельной группой компании Microsoft, что занималась рекомендациями и образцами для бесплатного распространение. Данная библиотека ещё содержит сам исходный код, исходящее образцы для большего ускорения в обучении [11].

Windows Forms (внутри пространства.NET Framework) реализуется как System.Windows.Forms.

Объектно-ориентированное программирование – это парадигмаиз программирования, основу которой составляют три основные концепции: наследование, инкапсуляция и полиморфизм [9]. Инкапсуляция – сокрытие деталей о работе классов от объектов, использующих или отправляющих им сообщения [11]; наследование позволяет создать новый класс в основе родительского (уже существующего), при этом свойства и функциональность родительского класса заимствуются новым классом [12]; полиморфизм означает зависимость поведения от класса, в котором это поведение вызывается, то есть два или более классов могут реагировать по-разному на одинаковые сообщения [10].

Важной деталью механизма ООП является абстракция. В объектно-ориентированном программировании, абстракция – это придание объекту характеристик, отличающих его от всех остальных объектов, что четко определяются по его концептуальным границам [12].

1.4 Критерии при подготовке

Всегда хочется использовать что-то новое и модное, но стоит быть готовым к тому, что молодой продукт может иметь достаточно серьёзные баги. Существуют примеры, когда необходимые доработки Фреймворка ждут исправления месяцы, а то и годы. Не стоит также исключать, что в какой-то момент разработка Фреймворка может быть остановлена. На мой взгляд, всегда стоит отдавать предпочтение проверенным временем продуктам. В качестве примера можно привести C# и SQL. Это практически стандарт де-факто в разработке бизнес-сервисов. Огромная накопленная база знаний сводит почти к нулю вероятность столкнуться с неразрешимой проблемой.

Стоить отметить, что в современной архитектуре приложений всё больше используется микросервисный подход. Он позволяет разделить большое приложение на много маленьких сервисов. Это позволяет многократно снизить последствия от неправильно выбранного языка программирования или Фреймворка, и позволяет развязать руки в экспериментировании. Так как сервис мал, то в любой момент его можно достаточно быстро переписать. Всегда стоит сохранять прагматичный подход к решению проблемы. При выборе того или иного продукта взвешивать преимущества и возможные негативные последствия на дальнейшую разработку.

Размер и сложность проекта. Если это небольшой проект или MVP, когда стоят короткие сроки выполнение проекта, то можно выбирать тот язык и фреймворк, в которых есть знание у команды или легко найти специалистов на рынке. Очень часто, особенно на аутсорсе, решение принимается в зависимости от отдела, куда попадает проект.

Тип проекта. Разные типы проектов требуют различных технологий. К примеру, приложения с интенсивным использованием данных, системы бронирования, приложения для социальных сетей, потоковые приложения, CMS, IoT, приложения в банковской сфере, торговые площадки и простые MVP, скорее всего, потребуют различных языков программирования и Фреймворков.

Стоимость. Многие технологии, Фреймворки и среды разработки требуют лицензии, но есть и много бесплатных вариантов. На практике, скорее всего, у вас будет выбор между платными инструментами, но с большей функциональностью и поддержкой, или бесплатные, но с ограниченным набором функций.

Востребованность технологии. Насколько много вакансий на рынке, какие в среднем зарплаты. Причём лучше посмотреть по разным странам. Например, С# очень популярен на Западе и сильно обгоняет своего конкурента Java, а значит, работу на нём будет находить значительно проще. А вот Рефал имеет некоторую популярность только в России, да и вакансий то немного.

Порог входа. От этого зависит то, насколько быстро можно начать зарабатывать на этой технологии и решать реальные задачи. Например, у языка С# достаточно высокий порог входа, и даже если у вас за плечами несколько лет опыта в кодинге на другом языке программирования, не факт, что получится быстро перепрыгнуть в Java и сохранить уровень дохода.

Перспективность. Технологии могут устаревать и терять востребованность. Важно смотреть за динамикой роста популярности языков программирования и фреймворков. Например, C# держит позиции за счёт развивающегося направления машинного обучения, и вкладываться в него точно имеет смысл. Язык Go всё чаще используется для микросервисов в крупных компаниях, но нет гарантий, что этот тренд сохранится надолго.

Интерес. Конечно, нельзя добиться весомых результатов, работая с тем, что не драйвит и не вызывает интереса. Поэтому это очень важный пункт. Но учтите, что интересы со временем могут меняться – и это нормально.

You have finished the free preview. Would you like to read more?