Математическое моделирование

й
му
учаще ся IV курса политехнического колледжа НовГУ, группы 22351

Тема задания:

Курсовая работа на указанную тему выполняется студентом колледжа в следующем объеме:

1. Анализ поставленной задачи и построение информационной и/или математической модели, включая определение, к какому типу задач математического моделирования относится эта задача, выбор и описание метода решения с подбором необходимых теоретических положений.

2. Презентация для защиты курсовой работы, выполненная качественно с использованием любых инструментальных средств, но так, чтобы для её воспроизведения на компьютерах в кабинете 405 не требовалось устанавливать дополнительное программное обеспечение (например, слайд-шоу стандартных графических форматов).

Курсовое проектирование заканчивается защитой курсовой работы.

Дата выдачи Срок окончания 26.01.2015 23.03.2015 Преподаватель _______________В. Б. Карпинский

Приложение Б

(обязательное)

Форма титульного листа

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Новгородский государственный университет имени Ярослава Мудрого» Многопрофильный колледж Политехнический колледж

Зам. директора по УМР и ВР

_____________/ Л. Н. Иванова /

«___»___________2012 г.

Тема курсовой работы точно в той формулировке, как она дана в задании

Пояснительная записка курсовой работы по

ОП.10 Математическое моделирование

по специальности

230115 Программирование в компьютерных системах

  Студент 3 курса, гр.22351 ________/ И. О. Фамилия / «___»____________2014 г
    Оценка __________________ Руководитель _________/ В. Б. Карпинский / «___»____________2014 г
   

Приложение В

(обязательное)

Пример выполнения курсового проекта

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Новгородский государственный университет имени Ярослава Мудрого» Многопрофильный колледж Политехнический колледж

Зам. директора по УМР и ВР

_____________/ Л. Н. Иванова /

«___»___________2012 г.

Разработка игровой обучающей программы по основам алгоритмизации и программирования

Пояснительная записка курсовой работы по

ОП.10 Математическое моделирование

по специальности

230115 Программирование в компьютерных системах

  Студент 4 курса, гр.82351 ________/ И. О. Фамилия / «___»____________2011 г
    Оценка __________________ Руководитель _________/ В. Б. Карпинский / «___»____________2011 г
   

Приложение В продолжение
Аннотация

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


Содержание

Приложение В продолжение
Введение

 
2 Специальная (практическая, опытно-экспериментальная) часть  
2.1 Анализ задачи  
Заключение  
Список используемой литературы  
Приложение Д  
   
   
   

Введение

Приложение В продолжение


В соответствии с заданием на выпускную квалификационную работу требовалось разработать игровую обучающую программу по основам алгоритмизации и программирования. Эта программа писалась для использования в Политехническом колледже Новгородского государственного университета имени Ярослава Мудрого. В колледже на некоторых специальностях студентам читается курс основ алгоритмизации и программирования. Очень важно, чтобы у студентов выработался навык решения простых типовых задач, написания простых типовых алгоритмов. Эти задачи и алгоритмы настолько простые, что они неинтересны. А студенты лучше усваивают материал, если он им интересен. Поэтому было решено разработать программный продукт, который в форме компьютерной игры обучал бы студентов работе с простыми типовыми алгоритмами. Разработка этой программы и стала задачей данного дипломного проектирования.

Для создания любой игровой программы необходимо придумать сюжет. Для данной игры был придуман такой сюжет. Молодой неопытный принц эльфов попадает в загадочное и незнакомое для него королевство, из которого он хотел бы поскорее выбраться. Но для этого ему предстоит пройти множество препятствий и победить не одного врага. Королевство наполнено странными монстрами, которых не по силам убить принцу с помощью меча. Их можно победить только магией. Магия бывает трёх видов: Бейсик, Паскаль и Си. У принца эльфов есть книга, которая для каждого монстра указывает, каким заклинанием или мантрой его можно одолеть. Однако его собственного опыта пока недостаточно, чтобы использовать эти заклинания. Он с помощью волшебной книги обращается с просьбой помочь ему в преодолении препятствий и встречающихся ему врагов к играющему — знатоку магии всех трёх видов. Играющий соглашается, и начинается путешествие, в ходе которого ему предстоит использовать свои навыки и знание языков программирования, чтобы и вызволить юного принца из этого опасного для него королевства.

Выполнен анализ задачи, построены информационная и математическая модели предметной области. Всё подготовлено для программной реализации разрабатываемого продукта.


2 Специальная (практическая, опытно-экспериментальная) часть

2.1 Анализ задачи

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

Приложение В продолжение
Молодой неопытный принц эльфов попадает в загадочное и незнакомое для него королевство, из которого он хотел бы поскорее выбраться. Но для этого ему предстоит пройти множество препятствий и победить не одного врага. Королевство наполнено странными монстрами, которых не по силам убить принцу с помощью меча. Их можно победить только магией. Магия бывает трёх видов: Бейсик, Паскаль и Си. У принца эльфов есть книга, которая для каждого монстра указывает, каким заклинанием или мантрой его можно одолеть. Однако его собственного опыта пока недостаточно, чтобы использовать эти заклинания. Он с помощью волшебной книги обращается с просьбой помочь ему в преодолении препятствий и встречающихся ему врагов к играющему — знатоку магии всех трёх видов. Играющий соглашается, и начинается путешествие, в ходе которого ему предстоит использовать свои навыки и знание языков программирования, чтобы и вызволить юного принца из этого опасного для него королевства.

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

1) генерацию фона;

2) рисование монстра;

3) изображение принца и его движение.

Другие проблемы должны быть решены в обучающей части игры. В ней потребуется сделать:

4) формулировка задания на программирование (написание «мантры»);

5) ввод и проверка ответа играющего;

6) предоставление ему справок и подсказок.

Интерфейс должен включать в себя следующие элементы:

1) окно, сквозь которое видна игровая ситуация (встреча принца с монстром на фоне ночного пейзажа);

2) поле, в котором будут появляться сообщения принца играющему, сведения о встреченном монстре и мантре, с помощью которой его можно победить (то есть формулировка задания на программирование);

3) поле, в котором будут даны сведения об используемых в программе переменных и других структурах данных;

4) поле, в котором играющий напишет «мантру» — фрагмент программы на заданном языке программирования.

Общая схема будущего интерфейса представлена на рисунке Д.1.

Традиция fantasy утверждает, что эльфы любят путешествовать ночью, особенно при свете звёзд. Поэтому пейзаж, составляющий фон картинки, должен включать в себя небо, дальний план и объекты переднего плана. Если события игры развиваются в лесу, то объектами дальнего плана могут быть покрытые деревьями холмы, а объектами переднего плана — деревья и кусты.

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

Градиентная заливка подразумевает, что при перемещении по горизонтали (по координате x) или по вертикали (по координате y) цвет меняется плавно от первого заданного цвета до второго. Обозначим компоненты R, G и B первого цвета R1, G1 и B1, а второго — R2, G2 и B2. Тогда нам требуется вывести формулы, которые позволят вычислить значения компонентов цвета (R, G и B) для любого x, лежащего между x1 и x2. Для этого воспользуемся найденным в справочнике параметрическим заданием прямой. Этот метод подразумевает, что есть параметр t, при значении которого 0 получается начальная точка отрезка прямой, а при значении 1 — конечная точка. Тогда при любых промежуточных (между 0 и 1) значениях t будут получаться точки, лежащие на отрезке.

Например, в координатах, где по оси абсцисс откладывается x, а по оси ординат — R, мы получим формулы зависимости интенсивности красного цвета при перемещении по горизонтали (вертикальный градиент). Формула для параметра t получается следующая:

Очевидно, что при x = x1 получается t =0, а при x = x2 получается t =1.

Тогда R вычисляется по формуле:

Также очевидно, что при t =0, получается R = R1, а при t =1 получается R = R2.

Для остальных компонентов цвета (G и B) и для горизонтального градиента формулы выводятся аналогично.

Для изображения деревьев на заднем плане, шерсти монстра и других «пушистых» объектов можно использовать инструмент, напоминающий «пульверизатор» графических редакторов. Только желательно, чтобы в нём точки были разных близких по оттенку цветов. И чтобы можно было произвольно задавать размеры «пятна» и плотность расположения точек. Для краткости такую фигуру будем называть «пятно». Для рисования пятна мы используем известные из математики формулы движения по окружности (преобразование полярной системы координат в декартову систему координат). Эти формулы следующие:

,

,

где x и y — координаты точки «пятна», X0 и Y0 — координаты центра «пятна», RadX и RadY — размеры «пятна» по горизонтали и по вертикали, φ — угол поворота (вторая полярная координата) точки «пятна».

Монстры, встречаемые принцем эльфов, должны выглядеть хотя бы немного по-разному. Можно использовать описанный в п.2.1.3 метод формирования разных оттенков цвета и инструмент «пятно». Но желательно также, чтобы и соотношение частей тела монстров было различным (их общие очертания фигуры типа «толстый» - «тонкий», «высокий» - «низкий»). Для этого представим себе монстра как сочетание шести «пушистых» овалов: туловище, голова, верхние и нижние лапы. На морде монстра будут яркие зловещие глаза, а на лапах — когти.

Меняя случайным образом размеры туловища и головы, мы будем получать монстров разного «роста» и «толщины», примеры чего показаны на рисунке Д.3.

Способы исчезновения могут быть разнообразны. Мы рассмотрим варианты из смены и анимации слайдов в PowerPoint.

Один из видов анимации «Растворение». Монстр будет растворяться на фоне. «Симметричная круговая» — эта анимация подразумевает в себе исчезновение монстра симметрично с обеих сторон, начиная с его головы, по кругу. «Шашки горизонтальные» — монстр «стирается» с фона в виде шахматной доски, с лева направо. Анимация «Вертикальные полосы». Используя эту анимацию монстр будет исчезать тонкими, случайными вертикальными полосками.

Изображение и движение принца разбиваются на три этапа:

1) принц приходит в точку встречи с очередным монстром;

2) принц стоит и ждёт, когда играющий (маг) напишет и применит необходимую для уничтожения монстра мантру;

3) после победы над монстром принц идёт дальше.

На втором этапе для поддержания ощущения жизни необходимо, чтобы принц совершал небольшие естественные движения. Например, вход и выдох, изменения выражения лица и небольшие движения рук.

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

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

Описание монстра может выглядеть примерно так: «Монстр Эдо, угрожающ, могуч, опасен, не боится ни копья, ни газа, ни молота. Он обычно…». Или так: «Монстр Жууск, увертлив, голоден, сердит, не боится ни бомбы, ни стрел, ни меча, ни ножа. Родился он в самом…».

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

- меча,

- яда,

- бомбы,

- чар,

- укуса,

- удара,

и так далее. Таким же методом можно из слогов «собрать» имя монстра.

Вторая часть, задача на программирование, может строиться по тому же принципу. Берём несколько фрагментов программ (например, типовой алгоритм подсчёта в массиве, суммирования элементов массива). Для большего разнообразия заданий имена переменных считаем фасетами. Тогда, например, могут получиться такие две задачи (приводится правильный вариант «мантры»):

1) Kl:=0;

for i:=1 to N do begin

if M[i]=5 then Kl:=Kl+1;

end;

WriteLn('Kl=',Kl:5);

2) Sum:=0;

for k:=1 to N do begin

if Spisok[k]=’ABC’ then Sum:= Sum +1;

end;

WriteLn('Sum=',Sum:5);

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


Заключение

Приложение В продолжение


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

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

Таким образом, задание на курсовое проектирование выполнено в полном объёме.


Приложение В продолжение
Список используемой литературы

1. Положение по организации выполнения и защиты курсовой работы (проекта) в колледжах НовГУ / НовГУ им. Ярослава Мудрого. — Великий Новгород, 2006. — 6с.

2. Методические указания по оформлению курсовых и выпускной квалификационной работ: учеб. пособие для студентов ПТК НовГУ/ Авт.сост. Чернега А. М., ПТК НовГу им. Ярослава Мудрого. — Великий Новгород,2006 — 27с.

3. Партыка Т.Л. / Математические методы / Т. Л. Партыка, И. И. Попов / М.: Форум — Инфра-М, 2007. — 464с.: илл.


Приложение В продолжение
Приложение Д

(обязательное)

Рисунок Д.1 — Предварительная схема будущего интерфейса

Рисунок Д.2 — Предварительные наброски монстров разного «роста» и «толщины»

Рисунок Д.3 — Эксперименты с горизонтальной градиентной заливкой для формирования пейзажа на заднем плане


ЛИСТ РЕГИСТРАЦИИ ИЗМЕНЕНИЙ

Номер изме-нения Номер листа Всего листов в документе ФИО и подпись ответственного за внесение изменения Дата внесения изменения Дата введения изменения
измененного замененного нового изъятого
                 
                 
                 
                 
                 
                 
                 

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: