Разработка игры змейки в лабиринте программе Python

Создание игры "Змейка в лабиринте" с помощью программы Python. Программное заполнение игрового поля элементами: ограждениями, фруктами. Разработка модуля взаимодействия программных продуктов в игре. Программный код управления змейкой в лабиринте.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 10.12.2015
Размер файла 682,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

КОНТРОЛЬНАЯ РАБОТА

по дисциплине «Разработка приложений в интегрированных средах»

на тему: «Разработка игры змейки в лабиринте программе Python»

Студента 2 курсу

Силина Евгения Леонидовича

Введение

Snake (Питон, Удав, Змейка и др.) -- компьютерная игра, возникшая в середине или в конце 1970-х.

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

Первой игрой этого плана был игровой автомат Hustle, выпущенный фирмой Gremlin в 1977 году. Одна из первых реализаций на домашнем компьютере была сделана в 1979 году на компьютере TRS-80, автор F. Seger (Германия). Вскоре после неё вышла версия для Commodore VIC-20, под названиемWorms. Микрокомпьютерная версия игры Hustle была выпущена Milton Bradley для компьютера TI-99/4A в 1980 году. Версии игры существовали и на многих советских компьютерах, например -- на Радио 86РК.

В число известных вариантов Питона входит игра Nibbles, некоторое время входившая в комплект MS-DOS.

Трёхмерная версия Питона существует для телефона Nokia и последующих телефонов Nokia.

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

В змейку можно поиграть на YouTube. Для этого надо поставить видео на паузу и нажать клавиши влево и вверх.

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

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

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

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

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

Для этого необходимо изучить принципы работы с программным продуктом Python.

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

Если же она съедает фрукт, то происходит увеличение длины змеи и уменьшением интервала обновления поля (увеличивается скорость перемещения).

2. Обзор инструментов

2.1 Описание программы

Python широко применяется как интерпретируемый язык для скриптов различного назначения.

Python имеет целью приблизить синтаксис реальной программы, написанной на нём, к описывающему задачу псевдокоду, что позволяет программисту уменьшить объём программы. Идея создания данного языка возникла в конце 1980-х и была реализована Гвидо ван Россумом.

Элегантный дизайн и эффективный, дисциплинирующий синтаксис этого языка облегчают программистам совместную работу над кодом. Python - мультипарадигмальный язык программирования: он позволяет совмещать процедурный подход к написанию кода с объектно-ориентированным и функциональным:

Преимущество Python:

- открытая разработка;

- довольно прост в изучении ,особенно на начальном этапе;

- особенности синтаксиса стимулируют программиста писать хорошо читаемый код;

- предоставляет средства быстрого прототипирования и динамической семантики;

- имеет большое сообщество, позитивно настроенное по отношению к новичкам;

- множество полезных библиотек и расширений языка можно легко использовать в своих проектах благодаря предельно унифицированному механизму импорта и программным интерфейсам;

- механизмы модульности хорошо продуманы и могут быть легко использованы;

- абсолютно всё в Python является объектами в смысле ООП, но при этом объектный подход не навязывается программисту.

Недостатки Python:

- не слишком удачная поддержка многопоточности;

- на Python создано не так уж много качественных программных проектов по сравнению с другими универсальными языками программирования, например, с Java;

- отсутствие коммерческой поддержки средств разработки (хотя эта ситуация со временем меняется);

- изначальная ограниченность средств для работы с базами данных;

- бенчмарки показывают меньшую производительность Python по сравнению с основными Java VM, что создаёт этому языку репутацию медленного.

Проекты с использованием Python:

- Yahoo Maps;

- Zope Corporation;

- Linux Weekly News;

- Shopzilla;

- Ultraseek.

Популярность:

Согласно Wikipedia, Python прочно вошёл в 8 наиболее популярных языков программирования по версииTIOBE Programming Community Index. А если не считать отдельно языки с C-подобным синтаксисом (C++, C#, ObjectiveC, Java и т. д.), то Python является третьим по популярности языком.

Использование:

Интерпретатор python можно использовать как для запуска скриптов, так и в режиме интерактивной оболочки.

Наберите в командной строке:

$ python

чтобы получить приглашение интерпретатора:

Python 2.4.3 (#1, Nov 11 2010, 13:34:43)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

Теперь можно набрать строку на языке Python и нажать Enter, чтобы выполнить её:

>>> print "Put some text here"

Put some text here

2.2 Сравнение продуктов

Наверняка многие ещё не успели забыть, что когда-то телефоны Nokia выходили с предустановленной игрой "Змейка", которая пользовалась в своё время огромной популярностью у владельцев телефонов компании.

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

Итак, игра получит название Dubbed Snake Rewind и по сути будет являться оригинальной версией "Змейки", которая когда-то предустанавливалась на устройства от Nokia. Но в отличие от старой версии, эта будет оснащена более современной графикой и большим количеством нововведений, например, возможностью усилить мощность змейки и оживить её в случае проигрыша.

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

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

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

2.3 Улучшение продукта

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

Требования к интерфейсу

8 пунктов, которые просто необходимы хорошему интерфейсу:

1. Доходчивость.

2. Лаконичность.

3. Узнаваемость.

4. Восприимчивость.

5. Последовательность.

6. Привлекательность.

7. Эффективность.

8. Снисходительность.

Давайте расмотрим все пункты.

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

2. Лаконичность.

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

3.Узнаваемость.

Многие дизайнеры стремятся сделать интерфейс интуитивным. А что значит интуитивность в действительности? Это значит, что что-то может быть распознано и понято инстинктивно и естественно. А как можно сделать что-то интуитивным? Сделайте это похожим. Похожесть - это что-то такое же, как то, что Вы уже встречали ранее. Если Вы видите что-то одно похожее на другое, то Вы знаете как оно действует, Вы знаете что можно ожидать. Выделите объекты, которые похожи для Ваших пользователей и интегрируйте их в Ваш интерфейс.

4. Восприимчивость.

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

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

5. Последовательность.

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

6. Привлекательность.

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

7. Эффективность.

Интерфейс пользователя - это машина, которая доставляет Вас туда, куда нужно. Пункты назначения - это различные функции программного обеспечения. Хороший интерфейс должен дать Вам возможность выполнить функции быстрее и с меньшими усилиями. "Эффективность" пока представляется несколько неясно - если Вы скомбинируете все описанные пункты данного определенно должен получиться эффективный интерфейс? Почти, но не совсем. Что действительно нужно, чтобы получить эффективный интерфейс, так это точно догадаться, чего хочет добиться пользователь и затем дать ему именно это без каких-либо препятствий. Вы должны определить, как Ваше приложение должно работать, какие функции необходимы, какие цели должны быть достигнуты? Реализуйте интерфес, который даст людям то, что они хотят, вместо простого предоставления доступа к списку функций.

8. Снисходительность.

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

3. Описание игры

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

В данной реализации на Python игра будет иметь ряд ограничений и особенностей: Количество уровней равно 1 (от 0 до 1). В каждом уровне доступно 0 жизней. При использовании всех жизней, а также при прохождении всех уровней, происходит переход на начальный уровень. Возможно создание собственных уровней. Скорость змейки и ее максимальная длина одинаковы на каждом уровне.

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

На игровом поле располагаются: Змейка. Состоит как минимум из трех последовательно расположенных элементов - голова, тело, хвост. Голова может перемещаться влево, вправо, вверх и вниз. Все остальные элементы змейки перемещаются вслед за ее головой.

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

Предмет "еда". Ягодка, при столкновении с которой размер змейки увеличивается, а точнее увеличивается ее тело.

Информационная панель (панель состояния игры). Состоит из трех элементов:

Level. Показывает текущий уровень.

Food left over. Показывает, сколько осталось съесть ягод.

Lives. Показывает количество доступных жизней.

Панель управления. Состоит из трех кнопок:

Кнопка "Start". Запускает текущий уровень.

Кнопка "Pause". Приостанавливает игру.

Кнопка "Stop". Останавливает игру, при этом происходит переход на начальный уровень. змейка python программный игра

Вывод

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

Данный программный продукт может служить для хорошего проведения времени.

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

Размещено на Allbest.ru

...

Подобные документы

  • Алгоритм поиска по первому наилучшему совпадению на графе. Основные классы для поиска пути в лабиринте. Тестирование нахождения кратчайшего пути в лабиринте. Порядок обхода вершин. Тестирование поведения программы при отсутствии пути в лабиринте.

    курсовая работа [888,7 K], добавлен 19.12.2013

  • Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.

    курсовая работа [160,3 K], добавлен 03.12.2014

  • Практическое использование алгоритмов для нахождения минимального пути в лабиринте. Разработка программы на языке С++ и в среде Visual C++. Основные способы поиска пути: метод волны и приоритетов. Описание разработанных функций и инструкция пользователя.

    дипломная работа [54,3 K], добавлен 16.03.2012

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

    контрольная работа [14,7 K], добавлен 11.11.2010

  • Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов.

    курсовая работа [2,1 M], добавлен 23.02.2011

  • Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

    дипломная работа [2,9 M], добавлен 07.04.2019

  • Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.

    курсовая работа [12,4 K], добавлен 18.06.2008

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

    дипломная работа [2,7 M], добавлен 27.10.2017

  • Разработка программного продукта (лабиринт с входом и выходом, состоящий из комнат) в среде разработки Borland C++ Builder 6. Требования пользователя к программному изделию. Программные ограничения, совместимость. Основные процессы разработки программы.

    курсовая работа [819,9 K], добавлен 14.01.2013

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

    курсовая работа [43,0 K], добавлен 08.06.2014

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

    курсовая работа [47,1 K], добавлен 22.06.2007

  • Разработка компьютерной игры "Эволюция" с помощью игрового движка Unit. Сравнение критериев игры-аналога и разрабатываемой игры. Разработка графического интерфейса пользователя. Настройки камеры в редакторе Unity. Структура файла сохранения игры.

    дипломная работа [3,6 M], добавлен 11.02.2017

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

    реферат [14,3 K], добавлен 15.10.2012

  • Разработка программ средствами библиотеки tkinter на языке Python. Изучение основы работы в текстовом редакторе Word. Описание авторской идеи анимации. Использование базовых команд и конструкций. Процесс проектирования и алгоритм разработанной программы.

    контрольная работа [125,3 K], добавлен 11.11.2014

  • Разработка в среде Delphi программы "Поиск кратчайшего пути", которая создает лабиринт, находит кратчайший путь его прохождения и отображает его. Структура данных задачи и методы ее решения. Общая схема организации и взаимодействия модулей, их описание.

    курсовая работа [86,5 K], добавлен 19.10.2010

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Об'єктно-орієнтована мова Python - сучасна мова програмування, проста у вивченні та використанні. Наявність повної стандартної бібліотеки. Середовища програмування на Python. Механізм функціонування інтерпретатора. Колекції даних, комбіновані оператори.

    презентация [753,2 K], добавлен 06.02.2014

  • Знакомство с основными особенностями развития игровой индустрии. Создание компьютерных игр как одна из прикладных сфер программирования. Общая характеристика набора методов класса Area. Рассмотрение способов создания игры "Змейка", анализ этапов.

    курсовая работа [799,4 K], добавлен 13.06.2013

  • Общая характеристика языков программирования. Краткий обзор C, C++, Java, PHP, Python, Delphi и Visual Basic. Процесс разработки программы игра "Крестики и нолики" с помощью AppWizard. Компиляция и компоновка модулей, определение интерфейса приложения.

    курсовая работа [2,5 M], добавлен 27.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.