Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка Сейдумеров Р.Э..doc
Скачиваний:
10
Добавлен:
31.07.2019
Размер:
1.13 Mб
Скачать

Государственное образовательное учреждение

высшего профессионального образования

«Московский государственный технический университет

имени Н.Э. Баумана»

Калужский филиал

кафедра

«Систем автоматизированного проектирования»

Пояснительная записка

к курсовому проекту

по дисциплине:

«Программирование на языке высокого уровня»

Разработка игры «ПАКМАН»

Выполнил:

Сейдумеров Р.Э.

САПР-31

Проверил:

Музыка П.А.

Калуга 2011

Оглавление

ВВЕДЕНИЕ 3

1. Исследовательская часть 4

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

1.2 Выбор языка программирования 4

2. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ 13

2.1 Системные требования. 13

2.2 Инструкция пользования 13

Заключение 15

СПИСОК ЛИТЕРАТУРЫ 15

Введение

Темой данного курсового проекта является разработка компьютерной игры «ПАКМАН». При написании данной программы будет использован такой язык программирования как C# и платформы Microsoft .NET. Данное приложение является компьютерной игрой, в которую можно поиграть на досуге.

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

  1. Исследовательская часть

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

Задачей этого курсового проекта является написание компьютерной игры «пакман». Основой задачей в игре является создание колобка, который будет поедать жёлтые шарики на игровом поле. Управление в игре производится с помощью клавиатуры, это позволяет изменять направление движения колобка.

Кроме этого, в данной игре надо было реализовать вражеских сущностей, которые мешают пакману «спокойно жить».

1.2 Выбор языка программирования

При решении конкретной прикладной задачи в большинстве случаев язык и среда программирования не выбираются, а задаются заказчиком, начальником и т.п. В том же редком случае, когда возможен выбор, исходить, на мой взгляд, следует из следующих условий (в порядке приоритета):

1. Характера самой задачи и технических требований;

2. Наработанного инструментария и имеющихся для данной среды библиотек;

3. Имеющихся в языке и среде программирования инструментальных средств.

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

С точки зрения того, внесены ли в набор понятий особые, специфичные для предметной области объекты, языки делятся на универсальные (процедурные) и специализированные. К последним можно отнести Prolog, Lisp. Универсальные языки позволяют реализовать любой алгоритм, пользуясь стандартным набором конструкций. Благодаря этому, код на таком языке может быть достаточно легко перенесен из одного процедурного языка в другой при помощи консервативных изменений.

Ниже приведены основные концепции, внесенные в те или иные общеупотребительные языки и связанные с ними понятия: - Типизация/структуры данных. Любой язык характеризуется набором «базовых типов», возможностями по пополнению этого набора при помощи ряда «конструкторов»: массив, запись (структура), объединение. В некоторых языках имеется универсальный тип (Variant в Delphi и Visual Basic), свободно используемый как любой из базовых типов. Степень контроля типов может быть очень разной - от полного отсутствия до крайне жесткого. Важно наличие (возможно, в виде библиотеки) структур данных переменной длины, например, динамических массивов. Подпрограммы и вызовы. Различия в языках сводятся к способам определения процедур и функций, вариантам передачи параметров, возможностям определения рекурсивных процедур и наличию процедурного типа данных. Типы памяти Наличие и широкая классификация типов памяти дает возможность эффективно управлять ее распределением, но и вносит сложность, требующую от программиста более внимательного отношения. Обычно выделяют (максимальный спектр): регистры, глобальные, локальные и динамические переменные. Модули Наличие средств логического объединения группы процедур/функций/переменных позволяет работать с большими проектами, упрощая их структуру. Важное свойство - возможность описания процедур инициации и завершения модуля. - Объектный подход Объединение структур и методов их обработки («инкапсуляция») создает значительные удобства при программировании. Возможность «наследования» позволяет привести в систему набор структур. Автоматически вызываемые конструкторы и деструкторы упрощают отслеживание взаимосвязей. Все это составляет удобный инструмент для описания понятий и действий прикладной программы. - Переносимость - независимость от аппаратуры, реализуемая при помощи семантики, не зависящей от конкретной машины и внесением в язык ряда специфичных понятий - таких как базовый тип с нефиксированным размером (int в C).

С точки зрения эффективности, важно как исполняется программа - последовательной интерпретацией исходного текста (интерпретатор) либо непосредственным исполнением готового кода (компилятор). Интерпретатор целесообразно использовать лишь в случае когда скорость интерпретации не сильно сказывается на эффективности программы. Кроме интерпретации и компиляции возможны промежуточные варианты с генерацией псевдокода, который отличается от исходного текста высокой скоростью интерпретации либо другими полезными свойствами (например, возможностью исполнения на машинах различной архитектуры - как Java).

Ниже рассмотрены популярные языки и программные среды с точки зрения приспособленности под различные классы задач.

BASIC (Beginner's All-purpose Symbolic Instruction Code) Рожденный в 60-е годы в Америке (столь любящей простые решения), Бейсик был задуман как простой язык для быстрого освоения. Бейсик стал фактическим стандартом для МикроЭВМ именно благодаря своей простоте как в освоении так и в реализации. Однако для достижения этого качества был принят ряд решений (отсутствие типизации, нумерация строк и неструктурное GOTO, и др.), негативно сказывающихся на стиле изучающих программирование. Кроме того, недостаток выразительных средств привел к появлению огромного количества диалектов языка, не совместимых между собой. Современные, специализированные версии Бейсика (такие как Visual Basic) несмотря на приобретенную "структурность" обладают все теми же недостатками, прежде всего - небрежностью по отношению к типам и описаниям. Пригоден для использования на начальном этапе обучения, как средство автоматизации (в случаях когда он встроен в соответствующие системы) либо как средство для быстрого создания приложений.

Pascal Разработанный известным теоретиком Н.Виртом на основе идей Алгола-68, Паскаль предназначался прежде всего для обучения программированию. Построенный по принципу "необходимо и достаточно", он располагает строгим контролем типов, конструкциями для описания произвольных структур данных, небольшим, но достаточным набором операторов структурного программирования. К сожалению, обратной стороной простоты и строгости является громоздкость описаний конструкций языка. Наиболее известная реализация - Turbo/Borland Pascal - несмотря на отличия от стандарта Паскаля, представляет из себя среду и набор библиотек, сделавшие из учебного языка промышленную систему для разработки программ в среде MS-DOS.

Assembler Это ярчайший представитель языков «низкого уровня», набор понятий которого основан на аппаратной реализации. Это средство автоматизации для программирования непосредственно в кодах процессора. Машинные команды описываются в виде мнемонических операций, что позволяет добиться достаточно высокой модифицируемости кода. Поскольку набор команд на разных процессорах различен, то и о совместимости говорить не приходится. Использование ассемблера целесообразно в случаях, когда необходимо напрямую взаимодействовать с оборудованием, либо получить большую эффективность для некоторой части программы за счет более высокого контроля над генерацией кода.

C и C++ В основе языка C - требования системного программиста: полный и эффективный доступ ко всем ресурсам компьютера, средства программирования высокого уровня, переносимость программ между различными платформами и операционными системами. С++, сохраняя совместимость с C, вносит возможности объектно-ориентированного программирования, выражая идею класса (объекта) как определяемого пользователем типа. Благодаря перечисленным качествам, C/C++ занял позицию универсального языка для любых задач. Но его применение может стать неэффективным там, где требуется получить готовый к употреблению результат в кратчайшие сроки, либо там, где невыгодным становится сам процедурный подход.

C# —объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к С++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).

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