Оглавление

Введение

. Аналитический обзор

.1 Анализ существующего П.О.

.2 Анализ алгоритмов для визуализации

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

.3 Анализ требований к П.П.

. Проектирование П.П.

.1 Определение функциональности П.П.

.2 Выбор типовой архитектуры и интерфейса

.3 Выбор инструментальных средств разработки

.4 Выбор используемого типового алгоритма визуализации

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

.5 Проектирование иерархии классов

.6 Первичная разработка алгоритма работы программы

3. Реализация ПП

3.1 Особенности реализации системы

.2 Реализация визуализации простейшего алгоритма

.3 Выделение типового приема визуализации

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

3.4 Разработка интерфейса программы

4. Тестирование ПП

.1 Методика тестирования правильности работы П.О.

.2 Целевое тестирование

.3 Результаты тестирования

. Внедрение ПП

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

.1 Руководство пользователя

.2 Результаты опытной эксплуатации

Заключение

Список использованных источников

Приложение

Введение

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

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

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

1. Аналитический обзор

Приведем общий анализ структур и продуктов, предоставленных на данный момент.
1.1 Анализ существующего П.О.

Для реализации данной задачи требуется программное обеспечение отвечающее многим требованиям, а именно:

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

)        Функциональная полнота. Программное обеспечение должно реализовать все функции необходимые для решения задачи.

)        Рациональность. Реализуемый программный продукт должен запускаться на целевом ПК.

Таким образом, весь спектр игровых движков сужается. Из общего перечня можно выделить:

Рис 1. Эмблема «UnrealEngine».

1)UnrealEngine — игровой движок, поддерживаемый и разрабатываемый компанией EpicGames. Создание сцен и добавление объектов осуществляется через удобныйSDK, который интуитивен, хоть и написан на английском языке. Программирование для этого игрового движка осуществляется через язык С++ и стороннюю среду программирования, чаще через Visualstudio 2015, однако возможна так же работа на Unixсистемах, значит есть возможность переключения на стороннюю среду программирования.

Рис 2. Редактор «UnrealEngine».

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

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

Рис 3. Эмблема движка «Leadwerks».

2) Leadwerks — игровой движок, разрабатываемый и поддерживаемый компанией LeadwerksSoftware.Программирование осуществляется через Visualstudio 2013 предоставляемый вместе с продуктом. Программирование сцен и скриптов осуществляется на С++ и Lua(сценарный язык С++).

Рис.4. Редактор «Leadwerks».

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

Рис.5. Эмблема «Unity3d».

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

) Unity — инструмент для разработки приложения в 3д и 2д игровом пространстве. Движок работает под руководством операционных систем Windows, OSX.Созданное приложение работает под операционными системами Windows, OSX, Android, WindowsPhone, AppleIOS, Linuxи т.д.

Рис.6. Редактор «Unity3d».

Движок имеет удобный SDK, который отвечает всем функциональным требованиям. Программирование осуществляется на сторонней среде программирования и языке JavaScreept/C#.

Движок распространяется платно, однако есть бесплатная урезанная версия, которая обладает полной базовой функциональностью.

Рис.7. Эмблема «JMankeyEngine».

4)JMankeyEngine — инструмент для создания приложений и игр, который разрабатывается и поддерживается командойjMEcore. Продукт написан на языке Java, что говорит обнего кроссплатформенности. Разработанное приложение будет работать на любой современной операционной систем, подходящей по требованиям характеристик железа. Программирование классов, объектов, сценариев пишется на языке Java

Рис.8. Редактор «JMankeyEngine».

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Движок имеет функционально полный SDK, настраиваемый для каждого пользователя. Движок распространяется бесплатно без покупки платной лицензии при публикации продукта.
1.2 Анализ алгоритмов для визуализации

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

)        Прямая визуализация. Визуализация в процессе выполнения алгоритма сортировки.

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

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

Требования к функциональным характеристикам:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

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

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

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

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

)        Зрелищность. Требование, которое представлено для данного программного продукта, которое отличает его от остальных.

6)     Авто шаг. Приложение должно иметь авто шаг для первичного обучения пользователя, ознакомления.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Требования необходимые для стабильной работы приложения на протяжении всей эксплуатации. Надежность является необходимым требованием.

Требования к надежности:

1)    Корректность и правильность работы.Программа должна работать правильно иначе вся разработка и труды будут потрачены напрасно.

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

)        Устойчивость. Программа должна работать стабильно на протяжении всей работы программы. Крахи не допустимы.

)        Запуск. Программа должна работать на компьютерах заказчика, в данном случае это компьютеры кафедры АВТ.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

2. Проектирование П.П.

На данный момент процесс создания программ и приложений не представить без разделения разработки на этапы жизненного цикла. Под жизненным циклом программы понимается набор этапов:

)Анализ предметной области и создание ТЗ. Этот этап производился при непосредственном взаимодействием с заказчиком, в данном случае это «руководитель ВКР». Совместно с заказчиком должны быть построены требования для данного продукта, а так же обговорены главные функции и время проектирования, сдачи проекта, тестирования.

) Проектирование структуры программы. Проектирование структуры,в соответствии которой будет построена логика программного продукта. Состоит из проектирования основных объектов и структур.

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

)Тестирование и отладка. Заключается в тестировании на наборе определенном разработчиком и наборе определенным руководителем ВКР.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

)Внедрение программного продукта. Внедрение происходит на «Кафедре АВТ» на целевых машинах. Заключается в установке и малом тестировании на установленных компьютерах.

)Сопровождение программного продукта. Сопровождение заключается в поддержании связи с кафедрой и в случае нахождения багов и ошибок доработка и изменение программы.

)Утилизация или обновление. Происходит после встречи с представителем кафедры ВКР и составление исправлений и доработок.

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

2.1 Определение функциональности П.П.

Программный продукт должен обладать функциями:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

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

)        Целевое решение. Программа решает строго представленную задачу, а именно визуализатор сортировок. Был разработан набор объектов для формирования набора, отвечающего за расположение и отрисовку объектов.

)        Интерактивность. Приложение взаимодействует с пользователем через интерфейс взаимодействия для получения информации типа:

Получение значения текущего объекта.

Переключение между состояниями.

Выход из приложения.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

)        Зрелищность. Приложение включает в себя элементы не обычные для таких как она и это выделяет её из других. Подогрев интереса должен происходить через эффектную визуальную составляющую. Цель как привлечение внимания пользователя.

)        Функция пошагового выполнения.Для пошагового выполнения был разработан вид взаимодействия через интерфейс включающий в себя кнопки «Назад, Далее»(Next, Prev).   .2 Выбор типовой архитектуры и интерфейса

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

Целевая архитектура включает в себя:

Таблица 1 — Характеристики целевой архитектуры.

 

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Необходимое П.О.:

Для работы и установки приложения на целевой машине требуется установка JavaMechine для корректной работы и взаимодействия с библиотеками Java.

Выбор интерфейса:

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

)        Интерфейс должен включать кнопки для управления процессом визуализации и отправления команд от пользователя(«Next», «Play», «Prev»).

)        Присутствие интерфейса для добавления в массив объектов новых элементов(поле Edit, Text, Button).

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

)        Начальное меню запуска. Меню для запуска отдельных функций:

Информация(«Info»).

Перейди на главный экран.(«Start»).

Закончить работу приложения(«Quit»).

Изменить настройки запуска.(«Option»).

.3 Выбор инструментальных средств разработки

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Для разработки программного проекта было использован инструмент, предоставляемый с SDKJMankeyEngineдля разработки классов управления. Так же был использован стандартные средства JMankeyEngineдля разработки интерфейса XML.
2.4 Выбор используемого типового алгоритма визуализации

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

Раздел отвечающий за представление о проектировании классов в общем процессе разработки.

Рис.9. Класс «ArrayOfCube»

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

Класс «ConstraintArray», отвечающий за хранение состояний, которые являются объектами класса «ArrayOfCube». Содержит члены необходимые для реализации данной функциональности.

Более точное описание находиться в Приложении Ж.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Рис.10. Класс «ConstraintArray».

Более точное описание находиться в Приложении З.
2.6 Первичная разработка алгоритма работы программы

Запуск.

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

После выбора настроек приложение переключается на стартовый экран.

Рис.11. Начальный экран запуска.

Рис.12. Стартовый экран приложения.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Где предоставляется пользователю выбрать действия: Старт («Start»), Информация («Info»), Настройки(«Option»), Выйти («Quit»).

Основная часть.

После нажатия на кнопку «Старт»(Start) на стартовом экране приложение переключается на экран выбора алгоритма сортировки.

Рис.13. Экран выбора сортировки.

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

Далее приложение попадает на главный экран приложения.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Рис.14. Главный экран приложения.

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

Далее следует добавить на сцену и в массив элементов несколько элементов, для содержания массива сортировки.

После добавления нужных нам элементов алгоритм работы программы автоматически заполняет объект «ConstraintArray», который включает в себя массив элементов«ArrayOfCube».

После добавления элементом можно сразу переходить к шагам по массиву состояний. Для этого можно воспользоваться: авто шаг(«Play»), шаг вперед(«Next»), шаг назад(«Prev»).

Завершение.

При нажатии на клавишу «Esc» происходит выход на начальный экран. Перед завершением программы можно посмотреть количество раз просматриваемых алгоритмов. При нажатии на кнопку выхода(«Quit») произойдет выход из приложения и потеря всей информации.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

3. Реализация ПП

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

.1 Особенности реализации системы

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

Рис.15. Цикл работы игрового движка.

Процесс работы жизненного цикла «Initialization» . Заключается в начальной установке объектов и инициализации переменных. Чаще всего используется для установки объектов дальнейшего использования, но в зависимости от типа инициализируемого объекта(в котором запущен Initialization).

Процесс работы жизненного цикла «Programinput». Заключается в считывании информации с полей «input» и клавиатуры.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

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

Процесс работы жизненного цикла «Render». Заключается в отрисовке статичных объектов которые были заданы в инициализации, так же он отвечает за отрисовку вследствие изменений, произведенных в «Update».

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

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

В качестве массива для хранения был разработан класс «ConstraintArray». Внутри себя он содержит члены для хранения информации о состояниях, а так же массив содержащий элементы класса «ArrayOfCube», который содержит информацию об определенном состоянии. Так же «ConstraintArray» содержит метод, отвечающий за заполнение массива состояний. Пояснение разработанного алгоритма заполнения и его блок схема приведен в Приложении А. Код класса «ConstraintArray» приведен в Приложении Б. Код класса «ArrayOfCube» приведен в Приложении В.

Для отображения элементов на сцене был разработан класс «MyBox», который содержит члены, отвечающие за создание и хранение элемента сцены. Каждый элемент этого класса так же содержит и определенное значение, относительно которого происходит сортировка. Код класса «MyBox» приведен в Приложении Г.

Вся логика отображения сцены записана в классе-контроллере «MyStartScreen», который наследуется от класса «AbstractAppState» и принадлежит к классам «ScreenController», что позволяет получить доступ к нему из XML-файла, для реализации кнопок и других интерактивных действий во время выполнения приложения. Сам же код XMLфайла приведен в Приложении Е. Код класса «MyStartScreen» приведен в Приложении Д.
3.3 Выделение типового приема визуализации

Типовой прием заключается в использовании приема «Планирование» и основного принципа построения состояний через перенос и смещение.

Построение состояния заключается:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

)        Создать состояние из предыдущего.

)        Сделать изменение согласно алгоритму..        Найти необходимый элемент перемещения..    Переместить по координате у(вертикально)..  Переместить по координате х (в право)..        Переместить по координате z (на нас)..  Сделать изменения согласно цвету..        Переместить контроллер.

)        Увеличить количество сделанных шагов.

)        Вернуться.   .4 Разработка интерфейса программы

Разработка интерфейса проводилась во встроенном редакторе движка с помощьюXML разметки.

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Всего было сформировано 3 XML экрана:

)        Стартовый экран.

)        Выбор алгоритма сортировки.

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

Далее приведено описание каждого из экранов.

Стартовый экран.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

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

Следующим шагом был сделан конечный вид, который включает в себя надписи (Text), кнопки (Button). Экран был разделен на 3 панели. Верхняя панель была отдана названию приложения с визуальным эффектом выпада из верхней области. В средней панели расположена информация о разработчике и служебная информация. Нижняя панель отвечает за четыре кнопки взаимодействия с объектом.

Выбор алгоритма сортировки.

Разработка данного элемента осуществлялось из необходимости разделять каждый из сортировок в отдельные сцены.

В течении разработки был сформирован шаблон для начального расположения данных. Далее были добавлены панели для разделения и корректного расположения кнопок. Каждой кнопке своя панель, чтобы кнопки не соприкасались.

Главный экран.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

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

В течении разработки был добавлен шаблон для расположения элементов GUI. Данное расположение позволило поделить горизонтальную часть для расположения элементов.

Следующим шагом был создан набор панелей для вертикального расположения относительно каждого столбца. Каждая панель не обязательно должна совпадать с другой по размеру. Для введения функциональности в главный экран было добавлены в ХМL файл контроллеры в виде кнопок:

·   «Next» — перейти к следующему состоянию.

·        «Play» — переключить на авто шаг.

·        «Prev» — перейти к предыдущему состоянию.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

·        «AddBox» — добавить новый элемент сортировки.

Добавлены элементы текстового поля ввода:

·   «TextInfo» — поле, отвечающее за информацию о состоянии сортировки.

·        «TextAddBox» — поле, отвечающее за ввод информации, а именно за значение объекта сортировки.

Добавлены элементы текстового поля:

·   «Editvalue:» — текст поле для информации о расположении поля ввода.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

·        «Label_Condition» — поле для отображения текущем номере шаге из максимального их количества.

Разработка контроллера экранов.

Для управления экранами был создан контроллер, который запускает методы, которые записаны в его теле класса. Вызов методов выполняется при нажатии кнопок на GUI интерфейсе. Контроллер наследует «SimpleAplication», что позволяет ему получить доступ к полям «app»(ссылка на приложение), nifity(ссылка на GUI интерфейс), однако следует убедиться что они будут переданы и присвоить эти значения в конструкторе. Фактически контроллер это тот же Main-файл, но который присоединен к локальному узлу, который можно будет отсоединить при необходимости. Таким образом, мы можем разделить всю программу на разные локальные файлы.

4. Тестирование П.П.

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

.1 Методика тестирования правильности работы П.О.

Тестирование должно происходить для данного программного продукта с набором чисел, а именно: 5, 4, 1, 3, 2.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Рис 16. Начальное состояние объектов.

) Начальное состояние все кубы на своих начальных местах.

) Алгоритм последовательным перебором находит минимальный элемент. На начальном шаге он равен первому элементу.

) Сравнивание последовательно находит минимальный элемент (1).

) Перенос «1» в начало со смешением для освобождения места под целевой элемент.

Рис 17. Состояние первый шаг.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

Рис 18. Состояние второй шаг.

) Следующий шаг. Алгоритм находит минимальный элемент из не отсортированной части (2).

) Перенос «2» в конец отсортированной части.

) Следующий шаг. Алгоритм находит минимальный элемент из не отсортированных элементов (3).

) Перенос «3» в конец отсортированной части.

Рис.19. Состояние третьего шага.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

) Следующий шаг. Алгоритм находит минимальный элемент из не отсортированных элементов (4).

Рис.20. Состояние пред последнее.

) Алгоритм находит минимальный, и это оказывается последний и единственный элемент из не отсортированной части. Следовательно, перенос не требуется.

Рис 21. Состояние конца сортировки.

) Сортировка завершена.   .2 Целевое тестирование

Целевое тестирование должно проходить непосредственно на возможных пользователях. В качестве пользователя был выбран обычный студент кафедры АВТ. Целью данного тестирования является выявление реакции на данный продукт.
4.3 Результаты тестирования

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

В результате тестирования было получены результаты:

)        Алгоритм корректно работает с набором чисел:.    5, 4, 1, 3, 2..        1,3,2,4.

c.       1.

) Выполнение программы корректно на протяжении всего цикла.

) Целевое тестирование на студенте выявило что:

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

визуализация программа алгоритм

5. Внедрение П.П.

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

.1 Руководство пользователя

Набор инструкций для овладения данной программой.

1. Стартовый экран.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

Данный экран имеет четыре управляющих компонента.

)        Для того, чтобы перейти к выбору алгоритма сортировки нажмите кнопку «Start».

)        Для того чтобы получить информацию о пользователе и информацию собираемую в процессе работы программы нажмите «Info».

)        Для того чтобы изменить настройки экрана и приложения нажмите на кнопку «Option».

)        Для того чтобы выйти из приложения нажмите на кнопку «Quit».

. Экран выбора сортировки.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Данный экран имеет три управляющих компонента.

) Для выбора «Пузырьковой сортировки» нажмите на кнопку «BubbleSort»

) Для выбора «Сортировки Шелла» нажмите на кнопку

«ShellSort».

) Для выбора «Сортировки Хоара» нажмите на кнопку

«QuickSort».

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

. Главный экран.

Данный экран имеет четыре управляющих компонента.

)        Чтобы добавить объект для сортировки .        Введите число, равное значению объекта( вес) который вы хотите добавить.     Нажмите на кнопку «AddBox».

)        Чтобы запустить авто шаг нажмите на кнопку «Play».

)        Чтобы перейти к следующему состоянию в ручном режиме нажмите на кнопку «Next».

)        Чтобы перейти к предыдущему состоянию в ручном режиме нажмите на кнопку «Prev».

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

)        Чтобы выйти из главного экрана на стартовый нажмите кнопку на клавиатуре «Esc».   .2 Результаты опытной эксплуатации

В результате опытной эксплуатации была установлена программа на целевую машину кафедры АВТ. Ошибок при установке обнаружено не было.

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

Заключение

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

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

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

Разработка интерфейса — процесс, занимающий большую часть от всей разработки, т.к. включает визуальное оформление и интерактивное взаимодействие.

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

Список использованных источников

1.      «Nifty GUI» the Missing Manual (28.12.2011). Авторы: JensHohmuth (void) Martin Karing (mkaring) (Slick2D chapter)

.        «jMonkeyEngine 3.0 Beginner’s Guide» (June 2013 Packt Publishing) Автор: Ruth Kusterer.

3.      «Современные силовые алгоритмы для визуализации информации большого объема» (2002) Автор: З.В. Апанович.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Приложение А

Пояснение алгоритма работы метода «setConstraints»:

)        Установка первого состояния из массивов начальных координат значений, координат. Установка контроллера из начального состояния.

addFirstState(this.defControllerLocation);

2)      Пока не закончиться сортировка, зациклить.

.1) Если предыдущий элемент был последним из массива, значит записать состояние «Complite», сортировку закончить и выйти из метода.

.2) Запомнить первое число из не отсортированных.

.3) Запомним устойчивое состояние(вне процессов переносов).

.4) Добавить состояние, в котором минимальный элемент это первый элемент, добавив отличие в виде цвета элемента (минимальный это красный).

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

.5) Зациклить пока номер цикла не будет равен длине

.5.1)Сделать состояние, в котором цвет текущего элемента с номером равном номеру цикла.

.5.2)Проверить значение элемента массива с номером цикла в сравнение с минимальным числом

.5.2.1) Если минимальное число больше, то запомнить это число как минимальное. Сделать состояние в котором предыдущее минимальное число становиться стандартным(стандартного цвета), а новое становиться минимальным (окрашивается в минимальный цвет).

.5.3)Если минимальное число это то, что было выбрано автоматом в начале цикла, тогда сделать состояние в котором происходит пояснение этого и далее не делать перенос, а лишь поменять цвет минимального на завершенный. Перейти к началу цикла с увеличенным номером цикла.

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

.5.5) Перенести минимальный элемент вверх по координате.

.5.6) Перенести минимальный элемент в лево над элементом которой является началом не отсортированного списка.

.5.7) Перенести все объекты между прошлым местом минимального и началом не отсортированного списка вправо на ширину объекта сортировки и расстояния между ними.

.5.8) Перенести минимальный элемент вниз на высоту элемента + расстояние между элементами сортировки, т.е. на место где он должен стоять.

.5.9) Сделать минимальный элемент завершенным.

.6) Перенести контроллер на элемент первый из не отсортированных.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

.7) Вернуться в начало цикла.

3)      Элементы стоят на своих местах. Сделать состояние поясняющее о окончании сортировки. Закончить заполнение массива состояний сортировки.

Рис. Блок схема метода «setConstraint».

Приложение Б

Класс ConstraintArray.

mygame.sorting;com.jme3.math.Vector3f;java.util.ArrayList;

/**

*

* @author semifoll

*/class ConstraintArray {ArrayList constArrayCube;

//varible of size.float heightObject;float wightObject;float between;boolean notFinish;int prevConstraint;ArrayList defArrayValue;ArrayList defArrayVector; //point to

//displayArrayCoordinateVector3f defControllerLocation; //point to controller locationConstraintArray(){.heightObject = 3;.between = 1;.wightObject = 3;.notFinish = true;.prevConstraint = 0;.defArrayValue = new ArrayList();.defArrayVector = new ArrayList();.defControllerLocation = new Vector3f(-3,0,-3);.constArrayCube = new ArrayList();

}ConstraintArray(ArrayList defArray , ArrayList){.heightObject = 0;.between = 0;.wightObject = 0;.notFinish = true;.prevConstraint = 0;.defArrayVector = new ArrayList(defArray);.defArrayValue = new ArrayList();.defArrayValue.addAll(defValue);.constArrayCube = new ArrayList();

}void addDefVector3f(Vector3f newVec){(!this.constArrayCube.isEmpty()){.constArrayCube = new ArrayList();

}.defArrayVector.add(newVec);

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}void addDefValue(Integer newVal){(!this.constArrayCube.isEmpty()){.constArrayCube = new ArrayList();

}.defArrayValue.add(newVal);

}int sizeVal(){this.defArrayValue.size();

}void setDefArrays(ArrayList newVec, ArrayList){.constArrayCube.clear();.constArrayCube = new ArrayList();.defArrayValue = new ArrayList(newVal);.defArrayVector = new ArrayList(newVec);

}void setHeight(float h){.heightObject = h;

}float getHeight(){this.heightObject;

}void setWight(float w){.wightObject = w;

}float getWight(){this.wightObject;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

}void setBetween(float b){.between = b;

}float getBetween(){this.between;

}void setController(Vector3f newControllerLocation){.defControllerLocation = newControllerLocation;

}Vector3f getController(){this.defControllerLocation;

}boolean setConstraints(){ .constArrayCube = new ArrayList();.notFinish = true;prevSort = 0;.prevConstraint = 0;(this.defControllerLocation); = 0; //плавающее число. номер от куда идут не

//отсортированные.(notFinish){(prevSort == this.defArrayVector.size()){.notFinish = false;.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);.constArrayCube.get(this.prevConstraint+1).(«Sorting is complete «);.prevConstraint++;

//добавить состояние сортировка завершена

continue;

}

//первое число из не отсортированных

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

Integermin = this.constArrayCube.get(this.prevConstraint).getValueByNum(prevSort);

//номер первого числа из не отсортированных

IntegernumMin = prevSort;

//сохранение номера устойчивого состояния(вне процесса

//перемещения)

IntegersteadyState = this.prevConstraint;

//добавитьцветминимума

//////////////////////////////////////////////

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

this.setMinFirsOfNotSort(numMin);

/////////////////////////////////////////////(int i = prevSort + 1; i!= this.defArrayVector.size(); ++i){

////////////////////////////////////////////////////////////////////.setSelectColor(i, numMin);

///////////////////////////////////////////////////////////////////////(min > this.constArrayCube.get(this.prevConstraint).(i)){

//добавить цвет минимума

////////////////////////////////////////////////////////////////////

this.setCurrentMin(i, numMin);

//////////////////////////////////////////////////////////////////// = .constArrayCube.get(this.prevConstraint).(i);= i;

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

}(numMin == prevSort){

//минимальный тот кого выбирали автоматом.

//добавить состояние из информационного состояния.

this.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);.constArrayCube.get(this.prevConstraint+1).(this.constArrayCube.get(this.prevConstraint + 1)..size() — 1, «standart»);.constArrayCube.get(this.prevConstraint+1).setColorByNum(num,»complete»);//complete.constArrayCube.get(this.prevConstraint+1).(«The minimal element stand in right location. »

+ «The number is «+numMin+» …»);.prevConstraint++;++;

continue;

}

//сделать перенос в начало.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

this.backToBegin(numMin);

//1) перенесте в верх y+hight+2 предмета.

this.setMoving(numMin, new Vector3f(.constArrayCube.get(this.prevConstraint).getLocalByNum(nu).x,.constArrayCube.get(this.prevConstraint).(numMin).y + this.heightObject + .between,.constArrayCube.get(this.prevConstraint).(numMin).z

)

);

//2) перенести в х элемента по положению(там где должен стоять)

this.setMoving(numMin, new Vector3f(*(this.between+this.wightObject),.constArrayCube.get(this.prevConstraint).(numMin).y,.constArrayCube.get(this.prevConstraint).(numMin).z

)

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

);

//3) сделать «релаксацию»(перенос всех остальных в ту область

//где требуется

//prevSort — номер с которого началось текущее сортирование

this.relaxLocation(prevSort, numMin);

//4) перенести наш элемент в низ на уровень всех.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

this.setMoving(numMin, Vector3f( .constArrayCube.get(this.prevConstraint).(numMin).x,.constArrayCube.get(this.prevConstraint).(numMin).y — this.heightObject -.between,.constArrayCube.get(this.prevConstraint).(numMin).z

)

);.constArrayCube.get(this.prevConstraint).(numMin,»complete»);//complete(prevSort, min, numMin, steadyState);(prevSort);++;

}true;

}void mainChanging(int prevSort, Integer min, Integer numMin, ) {

//5) перенести элемент минимальный в истинном массиве и //вернуть все векторы в состояние до сортировки.

this.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);.constArrayCube.get(this.prevConstraint+1).arrayListValue.add(,.constArrayCube.get(this.prevConstraint+1)..get(numMin)

);.constArrayCube.get(this.prevConstraint+1)..remove(numMin + 1);.constArrayCube.get(this.prevConstraint + 1).(.constArrayCube.get(steadyState).arrayListCube

);.constArrayCube.get(this.prevConstraint).(«Moving complete…»);.prevConstraint++;

}void moveConrtoller(int prevSort) {

//6) перенести контроллер на первый элемент не отсортированных

this.constArrayCube.get(this.prevConstraint).setControllerLocate(Vector3f(.constArrayCube.get(this.prevConstraint).(prevSort).x,.constArrayCube.get(this.prevConstraint).(prevSort).y,.constArrayCube.get(this.prevConstraint).(prevSort).z -3

)

);

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

}void relaxLocation(int prevSort, Integer numMin) {.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);(int i = prevSort; i!= numMin; ++i){.constArrayCube.get(this.prevConstraint+1).setLocalByNum(i, Vector3f(.constArrayCube.get(this.prevConstraint+1).(i).x + this.wightObject + this.between, .constArrayCube.get(this.prevConstraint+1).(i).y,.constArrayCube.get(this.prevConstraint+1).(i).z

)

);

}.constArrayCube.get(this.prevConstraint+1).(«Relax the location…»);.prevConstraint++;

}void backToBegin(Integer numMin) {.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);.constArrayCube.get(this.prevConstraint+1).(numMin, «moving»);.constArrayCube.get(this.prevConstraint+1).(.constArrayCube.get(this.prevConstraint + 1)..size() — 1,

«standart»);.constArrayCube.get(this.prevConstraint+1).setControllerLocate(Vector3f(.constArrayCube.get(this.prevConstraint+1).(numMin).x,.constArrayCube.get(this.prevConstraint+1).(numMin).y,.constArrayCube.get(this.prevConstraint+1).(numMin).z — 3

)

);.constArrayCube.get(this.prevConstraint+1).(«Start to moving object…»);.prevConstraint++;

}void addFirstState(Vector3f controllerLocation){.constArrayCube.add(new ArrayOfCube(.defArrayVector,this.defArrayValue, controllerLocation));

//инициализировать массив начального положения (в 0-м положении)

this.constArrayCube.get(this.prevConstraint).(«Start install. Every box on his location…»);

}void setMinFirsOfNotSort(Integer numMin){.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);.constArrayCube.get(this.prevConstraint+1).(numMin, «minimal»);.constArrayCube.get(this.prevConstraint+1).(«Controller choose min element is »

+ «first element of not sorters collection, »

+ «who start in «+numMin+» element…»);

//закрасить минимальный цветом..constArrayCube.get(this.prevConstraint+1).setControllerLocate(Vector3f(.constArrayCube.get(this.prevConstraint+1).(numMin).x,.constArrayCube.get(this.prevConstraint+1).(numMin).y,.constArrayCube.get(this.prevConstraint+1).(numMin).z — 3

)

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

);.prevConstraint++;

}void setSelectColor(int objnumi, Integer numMin){.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);(objnumi>0){((objnumi-1)!= numMin){.constArrayCube.get(this.prevConstraint+1).(objnumi — 1, «standart»);

}

}.constArrayCube.get(this.prevConstraint+1).(objnumi, «select»);.constArrayCube.get(this.prevConstraint+1).(«Select element for compare whith number”+

+“is»+objnumi+» …»);.constArrayCube.get(this.prevConstraint+1).(Vector3f(.constArrayCube.get(this.prevConstraint+1).(objnumi).x,.constArrayCube.get(this.prevConstraint+1).(objnumi).y,.constArrayCube.get(this.prevConstraint+1).(objnumi).z — 3

)

);.prevConstraint++;

}void setCurrentMin(int currentObject, Integer numMin){.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);.constArrayCube.get(this.prevConstraint+1).(numMin, «standart»);.constArrayCube.get(this.prevConstraint+1).(currentObject, «min»);.constArrayCube.get(this.prevConstraint+1).(«Selected element now is min, and the number”

+“is»+currentObject+» …»);.constArrayCube.get(this.prevConstraint+1).setControllerLocate(Vector3f(.constArrayCube.get(this.prevConstraint+1).(currentObject).x,.constArrayCube.get(this.prevConstraint+1).(currentObject).y,.constArrayCube.get(this.prevConstraint+1).(currentObject).z — 3

)

);.prevConstraint++;

}void setMoving(Integer numObject,Vector3f newLocetionObj){.constArrayCube.add(ArrayOfCube(this.constArrayCube.get(this.prevConstraint))

);.constArrayCube.get(this.prevConstraint+1).(numObject,

);.constArrayCube.get(this.prevConstraint+1).setControllerLocate(Vector3f(.constArrayCube.get(this.prevConstraint+1).(numObject).x,.constArrayCube.get(this.prevConstraint+1).(numObject).y,.constArrayCube.get(this.prevConstraint+1).(numObject).z — 3

)

);.constArrayCube.get(this.prevConstraint+1).(«Move object on new location…»);.prevConstraint++;

}

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Приложение В

КлассArrayOfCube.mygame.sorting;java.util.ArrayList;com.jme3.math.Vector3f;

/**

*

* @author semifoll

*/class ArrayOfCube {int sizeArray;ArrayList arrayListValue; ArrayList arrayListCube; ArrayList arrayListColor;String textInfo;Vector3f locateController;ArrayOfCube(){.arrayListValue = new ArrayList();.arrayListColor = new ArrayList();.arrayListCube = new ArrayList();.locateController = new Vector3f(-3,0,0);.sizeArray = 0;.textInfo = new String();

}ArrayOfCube( newArray, newValues)

{.sizeArray = 0;.arrayListCube = new ArrayList();.arrayListColor = new ArrayList();.arrayListValue = new ArrayList();(int i = 0; i!= newArray.size(); ++i){.arrayListCube.add(newArray.get(i));.arrayListValue.add(newValues.get(i));.arrayListColor.add(«standart»);.sizeArray++;

}.locateController = new Vector3f(-3,0,0);.textInfo = «»;

} ArrayOfCube( newArray, newValues, f newLocationController)

{.textInfo = «»;.sizeArray = 0;.arrayListCube = new ArrayList();.arrayListColor = new ArrayList();.arrayListValue = new ArrayList();(int i = 0; i!= newArray.size(); ++i){.arrayListCube.add(newArray.get(i));.arrayListValue.add(newValues.get(i));.arrayListColor.add(«standart»);.sizeArray++;

}.locateController = new Vector3f(newLocationController);

}ArrayOfCube(ArrayOfCube base){.sizeArray = 0;.arrayListCube = new ArrayList();.arrayListColor = new ArrayList();.arrayListValue = new ArrayList();.textInfo = base.textInfo;(int i = 0; i!= base.arrayListCube.size(); ++i){.arrayListCube.add(base.arrayListCube.get(i));.arrayListValue.add(base.arrayListValue.get(i));.arrayListColor.add(base.arrayListColor.get(i));.sizeArray++;

}.locateController = new Vector3f(base.locateController);

}void setTextInfo(String str){.textInfo = str;

}String getTextInfo(){this.textInfo;

}void setLocalByNum(int num, Vector3f newVec){.arrayListCube.set(num, newVec);

}Vector3f getLocalByNum(int num){this.arrayListCube.get(num);

}int GetSize(){sizeArray;

}int addToArray(Vector3f location, Integer value){.arrayListCube.add(new Vector3f(location));.arrayListValue.add(value);.arrayListColor.add(«standart»);.sizeArray++;sizeArray;

}int getValueByNum(int num){this.arrayListValue.get(num);

}String getColorByNum(int num){this.arrayListColor.get(num);

}void setControllerLocate(Vector3f newLocate){.locateController = new Vector3f(newLocate);

}void setColorByNum(int num, String newColor){(num < this.arrayListColor.size()){.arrayListColor.set(num, newColor);

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}void setDefColor(){(int i =0; i!= this.arrayListColor.size(); ++i){.arrayListColor.set(i, «standart»);

}

}void setArray(ArrayList newArray, newValues){.arrayListCube = new ArrayList();.arrayListValue = new ArrayList();.arrayListColor = new ArrayList();.sizeArray = 0;(int i = 0; i!= newArray.size(); ++i){.arrayListCube.add(newArray.get(i));.arrayListValue.add(newValues.get(i));.arrayListColor.add(«standart»);.sizeArray++;

}

}void setArrayVectors(ArrayList newArray){.sizeArray = 0;.arrayListCube = new ArrayList();(int i = 0; i!= newArray.size(); ++i){.add(newArray.get(i));

}

}void setValByNum(int num, int val){(num<this.arrayListValue.size()).arrayListValue.set(num, val);

}

}

Приложение Г

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Класс MyBox.

mygame;com.jme3.asset.AssetManager;com.jme3.material.Material;com.jme3.math.ColorRGBA;com.jme3.math.Vector3f;com.jme3.scene.Geometry;com.jme3.scene.Node;com.jme3.scene.shape.Box;com.jme3.scene.shape.Quad;com.jme3.texture.Texture;java.util.Random;

/**

*

* @author semifoll

*/class MyBox {Geometry box;Geometry valTexGeom;Integer value;Random random;ColorRGBA color;Texture valTexure;final AssetManager assetManager;MyBox(AssetManager assetManager,String name , Integer newVal,f newVec, ColorRGBA newCol){.assetManager = assetManager;= new Random();(newVal<0 || newVal>9){= 0;

}.value = newVal;.color = newCol;(this.value) {1:

this.valTexure = assetManager.loadTexture(«Textures/1.gif»);;2:

this.valTexure = assetManager.loadTexture(«Textures/2.gif»);;3:

this.valTexure = assetManager.loadTexture(«Textures/3.gif»);;4:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

this.valTexure = assetManager.loadTexture(«Textures/4.gif»);;5:

this.valTexure = assetManager.loadTexture(«Textures/5.gif»);;6:

this.valTexure = assetManager.loadTexture(«Textures/6.gif»);;7:

this.valTexure = assetManager.loadTexture(«Textures/7.gif»);;8:

this.valTexure = assetManager.loadTexture(«Textures/8.gif»);;9:

this.valTexure = assetManager.loadTexture(«Textures/9.gif»);;0:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

this.valTexure = assetManager.loadTexture(«Textures/0.gif»);;

}= createBox(name,newVec, newCol);.valTexGeom = this.createValTexture(name, newVec);

}Geometry getValTextureGeom(){this.valTexGeom;

}Geometry createValTexture(String name, Vector3f loc){.valTexure.setMagFilter(Texture.MagFilter.Nearest);.valTexure.setMinFilter(Texture.MinFilter.NearestNoMipMaps);.valTexure.setAnisotropicFilter(16);mat = new Material(assetManager, «Common/MatDefs/Misc/Unshaded.j3md»);.setTexture(«ColorMap», this.valTexure);q = new Quad(1, 1);g = new Geometry(name, q);.setLocalTranslation(loc.x-0.5f, loc.y — 0.5f, loc.z + 1.2f);.setMaterial(mat); g;

}Geometry createBox(String name, Vector3f loc, ColorRGBA color)

{mesh = new Box(Vector3f.ZERO,1,1,1);geom = new Geometry(name, mesh);mat2 = new Material(assetManager, «Common/MatDefs/Misc/Unshaded.j3md»);.setColor(«Color», color);mat1 = new Material(assetManager, «Common/MatDefs/Light/Lighting.j3md»);.setColor(«Ambient»,ColorRGBA.Blue);.setColor(«Diffuse»,ColorRGBA.Blue);.setColor(«Specular»,ColorRGBA.Green);.setBoolean(«UseMaterialColors»,true);.setFloat(«Shininess», 5);.setMaterial(mat2);.setLocalTranslation(loc);geom;

}Geometry getBox(){this.box;

} Integer getVal(){this.value;

}ColorRGBA getColor(){this.color;

}Vector3f getVector3f(){this.box.getLocalTranslation();

}void setValue(Integer newVal){.value = newVal;

}void setVector3f(Vector3f newVec){.box.getLocalTransform().setTranslation(newVec);

}void setColor(ColorRGBA newCol){.color = newCol;newBox = this.createBox(.box.getName(),.box.getLocalTranslation(), );.box = newBox;

}

}

Приложение Д

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Класс управления экраном. MyStartScreen.

mygame.GUI;com.jme3.app.Application;com.jme3.app.state.AbstractAppState;com.jme3.app.state.AppStateManager;com.jme3.asset.AssetManager;com.jme3.font.BitmapFont;com.jme3.font.BitmapText;com.jme3.font.Rectangle;com.jme3.material.Material;com.jme3.math.ColorRGBA;com.jme3.math.Vector3f;com.jme3.renderer.queue.RenderQueue;com.jme3.scene.Geometry;com.jme3.scene.Node;com.jme3.scene.shape.Box;com.jme3.scene.shape.Quad;com.jme3.system.AppSettings;com.jme3.texture.Image;com.jme3.texture.Texture;com.jme3.texture.Texture2D;de.lessvoid.nifty.Nifty;de.lessvoid.nifty.controls.Label;de.lessvoid.nifty.controls.TextField;de.lessvoid.nifty.elements.Element;de.lessvoid.nifty.elements.render.TextRenderer;de.lessvoid.nifty.screen.Screen;de.lessvoid.nifty.screen.ScreenController;java.util.ArrayList;java.util.Random;java.util.Vector;javafx.scene.text.Font;mygame.Main;mygame.MyBox;mygame.sorting.ConstraintArray;

public class MyStartScreen extends AbstractAppState implements ScreenController {

private Application app;AppStateManager stateManager;Nifty nifty;Screen screen;int step;int totalStep;ArrayList vecBox;Geometry controllerGeom;Vector3f controllerVec3f;boolean auto;long prevTime;

//!!!!!!!!!!ConstraintArray constr;Random random;ColorRGBA standart = ColorRGBA.Gray;ColorRGBA select = ColorRGBA.Blue;ColorRGBA minimal = ColorRGBA.Red;ColorRGBA complete = ColorRGBA.LightGray;ColorRGBA moving = ColorRGBA.Pink;float speed = 10;boolean moveCompliteX = true;boolean moveCompliteY = true;boolean moveCompliteZ = true;boolean movingComplete = false;

//////////////float hightBox = 3;float weightBox = 3;float betweenBox = 1;

///////////////

//private ViewPort viewPort;final Node rootNode;final Node guiNode;final AssetManager assetManager;final Node localRootNode = new Node(«Start Screen RootNode»);final Node localGuiNode = new Node(«Start Screen GuiNode»);

//private final ColorRGBA backgroundColor = ColorRGBA.Gray;int distance=0; BitmapText distanceText;AppSettings settings;MyStartScreen(Main app, AppSettings settings){.app = app;.stateManager = app.getStateManager();.rootNode = app.getRootNode();

//this.viewPort = app.getViewPort();.guiNode = app.getGuiNode();.assetManager = app.getAssetManager();.settings = settings;

}Geometry createController(Vector3f loc){mesh = new Box(Vector3f.ZERO,1,2,1);geom = new Geometry(«controller», mesh);mat2 = new Material(assetManager, «Common/MatDefs/Misc/Unshaded.j3md»);.setColor(«Color», ColorRGBA.Brown); mat1 = new Material(assetManager, «Common/MatDefs/Light/Lighting.j3md»);.setColor(«Ambient»,ColorRGBA.Blue);.setColor(«Diffuse»,ColorRGBA.Blue);.setColor(«Specular»,ColorRGBA.Green);.setBoolean(«UseMaterialColors»,true);.setFloat(«Shininess», 5);.setMaterial(mat2);.setLocalTranslation(loc);geom;

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

@Overridevoid initialize(AppStateManager stateManager, Application app) {.initialize(stateManager, app); .getInputManager().setCursorVisible(true);.vecBox = new ArrayList();

//TODO: initialize your AppState, e.g. attach spatials to rootNode

//this is called on the OpenGL thread after the AppState has been

//attached= new Random();.attachChild(localRootNode);.attachChild(localGuiNode);

//viewPort.setBackgroundColor(backgroundColor);= 0;= 0;.constr = new ConstraintArray();.prevTime = System.currentTimeMillis(); .controllerVec3f = new Vector3f(-3,0,0);.controllerGeom = this.createController(this.controllerVec3f);.rootNode.attachChild(this.controllerGeom);

}

@Overridevoid update(float tpf) {

//TODO: implement behavior during runtime(this.auto && (System.currentTimeMillis() — this.prevTime)>1000 &&.movingComplete){(this.step < this.totalStep).step++;

}(this.moveCompliteX == false &&.moveCompliteY == false &&.moveCompliteZ == false)

{.movingComplete = false;

}(this.moveCompliteX == true &&.moveCompliteY == true &&.moveCompliteZ == true)

{.movingComplete = true;

}(this.step < this.totalStep){

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

//проверканакоординаты.(int i = this.constr.sizeVal()-1; i > -1; i— ){(this.vecBox.get(i).getVector3f().x

>.constr.constArrayCube.(this.step).arrayListCube.get(i).x)

{.vecBox.get(i).setVector3f( Vector3f(

(float)(this.vecBox.get(i).getVector3f().x -speed*tpf),.vecBox.get(i).getVector3f().y,.vecBox.get(i).getVector3f().z

)

);

}(this.vecBox.get(i).getVector3f().x

<.constr.constArrayCube.get(this.step).arrayListCube.get(i).x )

{.vecBox.get(i).setVector3f( Vector3f(

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

(float)(this.vecBox.get(i).getVector3f().x +speed*tpf),.vecBox.get(i).getVector3f().y,.vecBox.get(i).getVector3f().z

)

);

}(this.vecBox.get(i).getVector3f().x

==.constr.constArrayCube.get(this.step).arrayListCube.get(i).x )

{ .moveCompliteX = true;

} (this.vecBox.get(i).getVector3f().y

>.constr.constArrayCube.get(this.step).arrayListCube.get(i).y )

{.vecBox.get(i).setVector3f( Vector3f(.vecBox.get(i).getVector3f().x ,

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

(float)(this.vecBox.get(i).getVector3f().y-speed*tpf),.vecBox.get(i).getVector3f().z

)

);

}(this.vecBox.get(i).getVector3f().y

<.constr.constArrayCube.get(this.step).arrayListCube.get(i).y )

{.vecBox.get(i).setVector3f( Vector3f(.vecBox.get(i).getVector3f().x ,

(float)(this.vecBox.get(i).getVector3f().y+speed*tpf),.vecBox.get(i).getVector3f().z

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

)

);

}(this.vecBox.get(i).getVector3f().y

==.constr.constArrayCube.get(this.step).arrayListCube.get(i).y )

{ .moveCompliteY = true;

}(this.vecBox.get(i).getVector3f().z

>.constr.constArrayCube.get(this.step).arrayListCube.get(i).z )

{.vecBox.get(i).setVector3f( Vector3f(.vecBox.get(i).getVector3f().x ,.vecBox.get(i).getVector3f().y ,

(float)(this.vecBox.get(i).getVector3f().z +speed*tpf)

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

)

);

}(this.vecBox.get(i).getVector3f().z

<.constr.constArrayCube.get(this.step).arrayListCube.get(i).z )

{.vecBox.get(i).setVector3f( Vector3f(.vecBox.get(i).getVector3f().x ,.vecBox.get(i).getVector3f().y ,

(float)(this.vecBox.get(i).getVector3f().z +speed*tpf)

)

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

);

}(this.vecBox.get(i).getVector3f().z

==.constr.constArrayCube.get(this.step).arrayListCube.get(i).z )

{ .moveCompliteZ = true;

}

//проверкацвета(this.constr.constArrayCube.get(this.step).getColorByNum(i).(«standart»)){(this.vecBox.get(i).getColor()!=this.standart){.get(i).setColor(this.standart);

}

}(this.constr.constArrayCube.get(this.step).getColorByNum(i).(«select»)){(this.vecBox.get(i).getColor()!=this.select){.get(i).setColor(this.select);

}

}(this.constr.constArrayCube.get(this.step).getColorByNum(i).(«minimal»)){(this.vecBox.get(i).getColor()!=this.minimal){.get(i).setColor(this.minimal);

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

}(this.constr.constArrayCube.get(this.step).getColorByNum(i).(«moving»)){(this.vecBox.get(i).getColor()!=this.moving){.get(i).setColor(this.moving);

}

}(this.constr.constArrayCube.get(this.step).getColorByNum(i).(«complete»)){(this.vecBox.get(i).getColor()!=this.complete){.get(i).setColor(this.complete);

}

}

}

//Controller(this.controllerVec3f.x

>.constr.constArrayCube.get(this.step).locateController.x )

{.controllerVec3f = ( Vector3f(

(float)(this.controllerVec3f.x — speed*tpf) ,.controllerVec3f.y,.controllerVec3f.z

)

);

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}(this.controllerVec3f.x

<.constr.constArrayCube.get(this.step).locateController.x )

{.controllerVec3f = ( Vector3f(

(float)(this.controllerVec3f.x + speed*tpf) ,.controllerVec3f.y,.controllerVec3f.z

)

);

}(this.controllerVec3f.y

>.constr.constArrayCube.get(this.step).locateController.y )

{.controllerVec3f = ( Vector3f(.controllerVec3f.x ,

(float)(this.controllerVec3f.y-speed*tpf),.controllerVec3f.z

)

);

}(this.controllerVec3f.y

<.constr.constArrayCube.get(this.step).locateController.y )

{.controllerVec3f = ( Vector3f(.controllerVec3f.x ,

(float)(this.controllerVec3f.y+speed*tpf),.controllerVec3f.z

)

);

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}(this.controllerVec3f.z

<.constr.constArrayCube.get(this.step).locateController.z )

{.controllerVec3f = ( Vector3f(.controllerVec3f.x ,.controllerVec3f.y,

(float)(this.controllerVec3f.z+speed*tpf)

)

);

}(this.controllerVec3f.z

>.constr.constArrayCube.get(this.step).locateController.z )

{.controllerVec3f = ( Vector3f(.controllerVec3f.x ,.controllerVec3f.y,

(float)(this.controllerVec3f.z-speed*tpf)

)

);

}

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}

@Overridevoid cleanup() {.cleanup();

//TODO: clean up what you initialized in the initialize method,

//e.g. remove all spatials from rootNode

//this is called on the OpenGL thread after the AppState has been detached.detachChild(localRootNode);.detachChild(localGuiNode);.app = null;.stateManager = null;

}void bind(Nifty nifty, Screen screen) {.nifty = nifty;.screen = screen;

}void onStartScreen() {

// throw new UnsupportedOperationException(«Not supported yet.»);

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}void onEndScreen() {

//throw new UnsupportedOperationException(«Not supported yet.»);

}void Start(String nextScreen) {.gotoScreen(nextScreen); // switch to another screen

// start the game and do some more stuff…

}void Info(){

}void Option(){

}void Quit() {.stop();

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}void Next(){(auto){.auto = false;

}(this.movingComplete == false){;

}(this.step < this.totalStep)

{.movingComplete = false;.step++;.getCurrentScreen().findNiftyControl(«Label_Condition», TextField.class).setText(this.step+»/»+this.totalStep);

}else{ .getCurrentScreen().findNiftyControl(«TextInfo», Label.class).setText(«Can’t go top maximal»);

}

}void Prev(){(auto){.auto = false;

}(this.movingComplete == false){;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}(this.step > -1)

{.movingComplete = false;.step—;.moveCompliteX = false;.moveCompliteY = false;.moveCompliteZ = false; .getCurrentScreen().findNiftyControl(«Label_Condition», TextField.class).setText(this.step+»/»+this.totalStep);

}else{.getCurrentScreen().findNiftyControl(«TextInfo», Label.class).setText(«Can’t go below minimal»);

}

}void Play(){.auto = true;

}void AddBox(){(this.moveCompliteX == false &&.moveCompliteY == false &&.moveCompliteZ == false){;

}(auto){.auto = false;

}valText = .getCurrentScreen().findNiftyControl(«TextField_BoxValue», TextField.class).getRealText();.getScreen(«hud»).findElementById(«TextField_BoxValue»).getRenderer(TextRenderer.class).getOriginalText();f newLocation = Vector3f(this.vecBox.size()*(this.weightBox

+ this.betweenBox),0,-10);newBox = new MyBox(,

«Cube»+this.vecBox.size(),.parseInt(valText),,.standart

);.constr.addDefValue(Integer.parseInt(valText));.constr.addDefVector3f(newLocation);.constr.setConstraints();.totalStep = this.constr.constArrayCube.size();.vecBox.add(newBox);.rootNode.attachChild(newBox.getBox());.rootNode.attachChild(newBox.getValTextureGeom());

}void AddBoxRandom(){(this.moveCompliteX == false &&.moveCompliteY == false &&.moveCompliteZ == false){;

}(auto){.auto = false;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

}val = this.random.nextInt(9);f newLocation = Vector3f(this.vecBox.size()*(this.weightBox

+ this.betweenBox),0,-10);newBox = new MyBox(,

«Cube»+this.vecBox.size(),,,.standart

);.constr.addDefValue(val);.constr.addDefVector3f(newLocation);.constr.setConstraints();.totalStep = this.constr.constArrayCube.size();.vecBox.add(newBox);.localRootNode.attachChild(newBox.getBox());.rootNode.attachChild(newBox.getValTextureGeom());

}String getPlayerName(){System.getProperty(«user.name»);

}void setTotalStep(int totStep){.totalStep = totStep;

}

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

Приложение Е

Разработанный XML документ, отвечающий за интерфейс программы.

</panel >

Приложение Ж

Описание класса «ClassArrayOfCube».

Класс для хранения информации о элементах состояния сортировки. Имеет ряд членов:

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

)Переменная размер сортируемого массива.Используется для быстрого доступа внутри массива.

intsizeArray

) Массив из чисел, отвечающих за значение объекта в сортируемом массиве.

ArrayListarrayListValue.

)Массив из чисел, отвечающих за координаты объекта в сортируемом массиве

ArrayListarrayListCube.

)Массив из чисел, отвечающих за цвет объекта в сортируемом массиве

ArrayListarrayListColor.

)Переменная строка, отвечающая за пояснение шага сортировки

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

StringtextInfo.

)Переменная — координата, состоящая из трех не целых чисел. Отвечает за координаты контроллера в этот шаг сортировки (Vector3flocateController).

Так же класс имеет ряд методов:

)        Метод — конструктор. Отвечает за построение состояния при передаче данных с отсутствием аргументов

ArrayOfCube()

)        Метод — конструктор. Отвечает за построение состояния при передаче данных с аргументами: 1) Массив координат; 2) Массив значений.

ArrayOfCube(ArrayList newArray, ArrayList)

3)      Метод — конструктор. Отвечает за построение состояния при передаче данных с аргументами: 1)Массив координат; 2) Массив значений; 3)Координаты контроллера.

ArrayOfCube(ArrayList newArray, newValues, f newLocationController)

4)      Метод — конструктор копирования. Отвечает за построение состояния при передаче данных с аргументом — указателем на другой объект аналогичный создаваемому.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

ArrayOfCube(ArrayOfCubebase)

)        Метод для задания информации о шаге сортировки.

setTextInfo(Stringstr) Метод для получения информации о шаге сортировки.

getTextInfo()

)        Метод для задания координаты элемента по номеру.

setLocalByNum(int num, Vector3f newVec)

7)      Метод для получения координаты по номеру.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

getLocalByNum(int num)

)        Метод для получения размера сортируемого массива.

GetSize()

9)      Метод для добавления элемента в массив.

addToArray(Vector3f location, Integer value)

10)    Метод для получения значения объекта сортируемого массива по номеру.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

getValueByNum(int num)

11)    Метод для получения цвета объекта сортируемого массива по номеру.

getColorByNum(int num)

12)    Метод для задания координат контроллера.

setControllerLocate(Vector3f newLocate)

13)    Метод для задания цвета элемента сортируемого массива по номеру.

setColorByNum(int num, String newColor)

14)    Метод для задания всем элементам массива стандартного цвета.

setDefColor()

15)    Метод для задания массивов с переданных аргументов.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

setArray(ArrayList newArray, ArrayList newValues)

16)    Метод для задания массива координат объектов сортируемого массива.

setArrayVectors(ArrayList newArray)

17)    Метод для задания значения объекта сортируемого массива по номеру этого объекта.

setValByNum(int num, int val)

Приложение З

Описание класса «ClassConstraintArray»

Класс для хранения набора состояний. Имеет ряд членов:

1)  Массив состояний .

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

constArrayCube;

)    Переменные, отвечающие за хранение размеров сортируемых объектов.

— Высота (heightObject).

Ширина (wightObject).

Расстояние между объектами (between).

) Переменная, отвечающая за хранение информации об окончании построения массива состояний.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

notFinish.

4)    Переменная, отвечающая за хранение информации о номере предыдущего состояния при построении массива состояний.

prevConstraint.

)      Массив значений, хранящий начальные значения массива.

defArrayValue.

)      Массив координат, хранящий начальные координаты массива.

defArrayVector.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

7)    Переменная, отвечающая за хранение начальной координаты контроллера.

defControllerLocation.

Так же существует ряд методов:

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

ConstraintArray().

2)  Метод — конструктор, отвечающий за создание экземпляра класса при передаче данных с аргументами стандартных массивов координат, значений.

ConstraintArray( defArray , defValue).

3)      Метод для добавления элемента стандартного значения координат в набор координат.

addDefVector3f(Vector3f newVec).

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

4)  Метод для добавления элемента в массив хранящихся стандартных значений сортируемого массива.

addDefValue(IntegernewVal).

5)  Метод для получения размера стандартного начального массива значений.

sizeVal().

6)      Метод для задания начальных массивов. setDefArrays (ArrayList newVec, ArrayList newVal).

7)      Метод для заданий высоты сортируемого объекта.

setHeight(float h).

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

)        Метод для получения значения высоты сортируемого объекта.

getHeight().

)        Метод для задания высоты сортируемого объекта.

setWight(floatw)

) Метод для получения значения ширины сортируемого объекта.

getWight().

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

) Метод для задания расстояния между сортируемыми объектами.

setBetween(floatb).

) Метод для получения значения расстояния между сортируемыми объектами заданном в этом объекте.

getBetween().

) Метод для задания координат начального положения контроллера.

setController(Vector3fnewControllerLocation).

) Метод для задания массива состояний. Является сердцем программы.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

setConstraints()

) Метод, отвечающий за изменения связанные с перемещением элементов в массиве значений во время построения массива состояний.

mainChanging(int prevSort, Integer min, Integer numMin, Integer steadyState).

16) Метод, отвечающий за перенос контроллера за элемент с номером.

moveConrtoller(intprevSort).

) Метод, отвечающий за смещение объектов для освобождения места.

relaxLocation(int prevSort, Integer numMin).

18) Метод, отвечающий за действия подготовки к перемещению в начало.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

backToBegin(IntegernumMin).

) Метод, отвечающий за добавление начального состояния в массив состояний.

addFirstState(Vector3fcontrollerLocation).

) Метод, отвечающий за присвоение минимального числа первому элементу из не отсортированной части массива.

setMinFirsOfNotSort(IntegernumMin).

) Метод, отвечающий за создание состояния в котором текущий элемент (тот который по номеру равен номеру цикла) становиться выбранным на проверку. Этот элемент становиться цвета «Select».

setSelectColor(int objnumi, Integer numMin).

) Метод, отвечающий за создание состояния в котором текущий элемент (тот, что с номером цикла) становиться минимальным.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

setCurrentMin(int currentObject, Integer numMin).

23) Метод, отвечающий за перемещение объекта с номером в новые координаты которые передаются в аргументе.

setMoving(Integer numObject,Vector3f newLocetionObj).

Приложение И

Описание класса «ClassMain».

package mygame;com.jme3.app.SimpleApplication;com.jme3.font.BitmapFont;com.jme3.font.BitmapText;com.jme3.math.Vector3f;com.jme3.niftygui.NiftyJmeDisplay;com.jme3.renderer.RenderManager;de.lessvoid.nifty.Nifty;mygame.GUI.MyStartScreen;class Main extends SimpleApplication {MyStartScreen myMainMenuController;static void main(String[] args) {app = new Main();.start();

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

@Overridevoid simpleInitApp() {(false);(false);.setMoveSpeed(10f);.setDragToRotate(true);.setCursorVisible(true);= new MyStartScreen(this, this.settings);.attach(myMainMenuController);niftyDisplay = new NiftyJmeDisplay(assetManager,, audioRenderer, guiViewPort);nifty = niftyDisplay.getNifty();.addProcessor(niftyDisplay);.fromXml(«Interface/StartScreen.xml»,

«start», myMainMenuController);

//nifty.setDebugOptionPanelColors(true);.setDragToRotate(true);.getApplication().getCamera().(new Vector3f(10,1,20));

}

@Override

public void simpleUpdate(float tpf) {}

@Overridevoid simpleRender(RenderManager rm) {}

}