Файл: Игра 3 в ряд на языке Python по дисциплине Языки и системы программирования. Данная программа осуществляет вывод на экран случайным образом расположенных объектов разного цвета и дальнейшие варианты их взаимодействия.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 934

Скачиваний: 20

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


ВведениеИгры - помогают нам заняться в своё свободное время интересными вещами. Раньше игры предполагали другую цель, саморазвития и обучения, а теперь это просто вещь для уничтожения свободного времени. Раньше с помощью игр готовили охотников, стрелков, а теперь это просто развлечение. В данном курсовом проекте описывается программа, написанная в соответствии с постановкой задачи по теме «Игра «3 в ряд» на языке Python» по дисциплине «Языки и системы программирования». Данная программа осуществляет вывод на экран случайным образом расположенных объектов разного цвета и дальнейшие варианты их взаимодействия.В данной программе в своём функционале содержит такие элементы как подсчёт очков, заработанных во время игры, ограниченное количество ходов, возможность в любое время прервать игру посредством выхода.Назначение программы - развлечение играющих, совершенствование их координации и логического мышления. Программа может применяться в качестве игровой на разных типах персональных компьютеров.Характерным представителем этого жанра является выпущенная в 2001 году игра Bejeweled, основанная на игре 1994 года «Шарики», а сама история появления элементов жанра прослеживается до «Тетриса» и Chain Shot! , изданных в 1985 году. [7]Игры этого жанра характеризуются тем, что их игровой мир состоит из таблицы или сетки элементов, а задачей игрока является манипулирование элементами таким образом, чтобы совпали заданные игрой шаблонные комбинации, и после выполнения условия собранные элементы исчезают.Во время проектирования игр жанра «три в ряд» обращают внимание на следующие особенности:

  • Короткие игровые сессии: для большинства казуальных игр характерны короткие игровые сессии, и при этом в них можно как быстро начинать играть, так и без осложнений прерывать игру для того, чтобы потом в неё вернуться; эти же особенности распространяются для игр жанра «три в ряд»; это не означает, что игроки не могут играть в них долго, но игровой процесс строится таким образом, чтобы позволять себя легко прерывать.

  • Автоматическое сохранение: как и казуальные, игры жанра «три в ряд» сами сохраняют состояние игрового мира даже если игрок сам закрывает приложение; это позволяет легко как покинуть игру, так и вернуться в неё; помимо этого, данная особенность позволяет игрокам играть в различной обстановке (например, на рабочем месте).

  • Управление с помощью мыши: сложность и контекст игры жанра «три в ряд» таковы, что она может полностью контролироваться и управляться манипулятором «мышь»; в то же время, в такие игры обычно оказывается сложнее играть с помощью клавиатуры.

  • Очень простые правила: гейм дизайнер Стив Мерецки описывает это так, что все правила игры жанра «три в ряд» должны записываться тремя предложениями.

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

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

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

  • Небольшие наказания игроков: в сравнении с играми других жанров, казуальные, как и игры жанра «три в ряд», стараются избегать наказывать игроков если они допускают ошибки. [11]

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

  1. Изучение литературы по языку программирования Python;

  2. Создание программы путём реализации интерфейса, алгоритмов игровой части;

  3. Создать работающее приложения используя полученные теоритические знания во выбранной среде программирования.
1. Основная часть 1.1. Общая информация PythonБыла поставлена задача изучить литературу по языку программирования Python, а также изучить методы и функции, которые будут использоваться в дальнейшем создании приложения.Python - высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ. Язык является полностью объектно-ориентированным в том плане, что всё является объектами. Необычной особенностью языка является выделение блоков кода пробельными отступами. Синтаксис ядра языка минималистичен, за счёт чего на практике редко возникает необходимость обращаться к документации. Сам же язык известен как интерпретируемый и используется в том числе для написания скриптов. Недостатками языка являются зачастую более низкая скорость работы и более высокое потребление памяти написанных на нём программ по сравнению с аналогичным кодом, написанным на компилируемых языках, таких как C или C++.Разработчик языка - Гвидо ван Россум, голландский программист, прежде всего известный как автор языка программирования Python. Среди разработчиков Python Гвидо известен как «великодушный пожизненный диктатор» (BDFL) проекта, что означает, что он продолжает наблюдать за процессом разработки Python, принимая окончательные решения, когда это необходимо. С июля 2018 года Гвидо ушел в постоянный отпуск от диктаторства, оставив за собой право быть обычным разработчиком. [9]

Python является мультипарадигменным языком программирования, поддерживающим императивное, процедурное, структурное, объектно-ориентированное программирование, мета программирование и функциональное программирование. Задачи обобщённого программирования решаются за счёт динамической типизации. Аспектно-ориентированное программирование частично поддерживается через декораторов, более полноценная поддержка обеспечивается дополнительными Фреймворками. Такие методики как контрактное и логическое программирование можно реализовать с помощью библиотек или расширений. Основные архитектурные черты - динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений с глобальной блокировкой интерпретатора, высокоуровневые структуры данных. Поддерживается разбиение программ на модули, которые, в свою очередь, могут объединяться в пакеты.Стандартная библиотека включает большой набор полезных переносимых функций, начиная с возможностей для работы с текстом и заканчивая средствами для написания сетевых приложений. Дополнительные возможности, такие как математическое моделирование, работа с оборудованием, написание веб-приложений или разработка игр, могут реализовываться посредством обширного количества сторонних библиотек, а также интеграцией библиотек, написанных на Си или C++, при этом и сам интерпретатор Python может интегрироваться в проекты, написанные на этих языках. Существует и специализированный репозиторий программного обеспечения, написанного на Python, - PyPI. Данный репозиторий предоставляет средства для простой установки пакетов в операционную систему и стал стандартом де-факто для Python. По состоянию на 2019 год в нём содержалось более 175 тысяч пакетов.Python стал одним из самых популярных языков, он используется в анализе данных, машинном обучении, DevOps и веб-разработке, а также в других сферах, включая разработку игр. За счёт читабельности, простого синтаксиса и отсутствия необходимости в компиляции язык хорошо подходит для обучения программированию, позволяя концентрироваться на изучении алгоритмов, концептов и парадигм. Отладка же и экспериментирование в значительной степени облегчаются тем фактом, что язык является интерпретируемым. Применяется язык многими крупными компаниями, такими как Google или Facebook. По состоянию на сентябрь 2022 года Python занимает первое место в рейтинге TIOBE популярности языков программирования с показателем 15,74%. «Языком года» по версии TIOBE Python объявлялся в 2007, 2010, 2018, 2020 и 2021 годах. [13]
Основные особенности языка Python:1. ИнтроспекцияВ программировании это способность программы получать различную информацию об объектах во время работы программы. Примеры полезных функций интроспекции в Python:

  • dir();

  • type();

  • hasattr();

  • id();

  • isinstance().
2. МультиплатформенностьИнтерпретатор Python можно легко установить на Windows, macOs и IOS.3.Встроенные паттерны проектированияВ Python существуют свои встроенные паттерны проектирования, лучшим примером для понимания служат Декоратор и Итератор.Декоратор позволяет расширять функциональность без наследования. Чтобы разобраться в паттерне Итератор, следует просто изучить механизм работы итераторов и генераторов языка (о них я писал здесь)4. Обширный набор стандартных библиотекПри использовании Core Python вы получаете «в коробке» большой набор полезных стандартных библиотек. Примером может служить библиотека для работы с БД SQLite, а также json, math, re, random, csv, html и много других.5. Читаемость языкаФорматирование текста в Python является частью его синтаксиса и да, это те самые отступы (пробелы, табуляция кому как нравится), которые позволяют повышать читаемость кода.Python расширяем: если вы знаете, как программировать на C, то вам легко будет добавить к интерпретатору новую встроенную функцию или модуль, либо для выполнения критических операции на максимальной скорости, либо для связывания программы на Python с библиотеками, которые могут быть доступны только в бинарной форме (например, зависящие от поставщика графические библиотеки). Как только вы приобретете соответствующий опыт, вы сможете привязать интерпретатор Python к приложению, написанному на C, чтобы использовать его как язык расширений или командный язык этого приложения. [1]1.2. Основные функции PythonВ Python существуют десятки встроенных функций и классов, сотни инструментов, входящих в стандартную библиотеку Python, и тысячи сторонних библиотек на PyPI. Держать всё в голове начинающему программисту нереально. В статье расскажем про стандартные встроенные функции Python: какие используются часто, а какие вам, вероятно, не пригодятся никогда.Чтобы разобраться, на какие функции стоит обратить внимание, их следует разделить на группы:

  • Общеизвестные: почти все новички используют эти функции и довольно часто;

  • Неочевидные для новичков: об этих функциях полезно знать, но их легко пропустить, когда вы новичок в Python;

  • Функции для отладки;

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

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

  1. Общеизвестные функции
Если вы уже писали код на Python, эти модули должны быть вам знакомы.1.1. PrintВряд ли найдётся разработчик, даже начинающий, который не знает эту функцию вывода. Как минимум реализация «Hello, World!» требует использования данного метода. Но вы можете не знать о различных аргументах, которые можно передавать в print.

words = [«Welcome», «to», «Python»]

print(words)

['Welcome', 'to', 'Python']

print(*words, end=«!\n»)

Welcome to Python!

print(*words, sep=«\n»)

Welcome

to

Python
1.2. LenВ Python нет синтаксиса вроде my_list.length() или my_string.length, вместо этого используются поначалу непривычные конструкции len(my_list) и len(my_string).

words = [«Welcome», «to», «Python»]

len(words)

3
1.3. StrК сожалению, в отличие от многих других языков программирования, в Python нельзя объединять строки и числа.

version = 3

«Python « + version

Traceback (most recent call last):

File ««, line 1, in

TypeError: can only concatenate str (not «int») to str
Python отказывается приводить целое число 3 к типу строка, поэтому нужно сделать это самостоятельно, используя встроенную функцию str.

version = 3

«Python « + str(version)

'Python 3'
1.4. IntВ языке программирования Python встроенная функция int() возвращает целое число (экземпляр класса int) в десятичной системе счисления.[15]

program_name = «Python 3»

version_number = program_name.split()[-1]

int(version_number)

3
2. Функции, неочевидные для новичков2.1. BoolЭта функция проверяет достоверность (истинность) объектов Python.

bool(5)

True

bool(-1)

True

bool(0)

False
2.2. SumЭта функция берёт набор чисел и возвращает их сумму.