Реализация игры "Жизнь"
Изучение игры "Жизнь" Джона Хортона Конуэма, как наиболее известного клеточного автомата, моделирующего развитие и угасание популяции. Компьютерное моделирование биологических популяций с целю выявления факторов определяющих свойства изучаемого объекта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | практическая работа |
Язык | русский |
Дата добавления | 03.04.2019 |
Размер файла | 4,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ МОСКОВСКОЙ ОБЛАСТИ
Университет «Дубна»
ИНСТИТУТ СИСТЕМНОГО АНАЛИЗА И УПРАВЛЕНИЯ
Кафедра распределенных информационно-вычислительных систем
Кафедра информационных технологий
КУРСОВАЯ РАБОТА
по дисциплине: Программирование на языке высокого уровня
ТЕМА: Реализация игры "Жизнь"
Выполнил: студент группы 1012
Морозова Марина Михайловна
Руководитель:
Осипов П.А.
Дубна, 2018
Введение
В данной курсовой работе представлена реализация игры «Жизнь».
Игра «Жизнь» -- наиболее известный клеточный автомат, моделирующий развитие и угасания популяции.
Создана игра «Жизнь» была в 1970 году Джоном Хортоном Конуэем, математиком Кембриджского университета. Возникающие в процессе игры ситуации очень похожи на реальные процессы, происходящие при зарождении, развитии и гибели колонии живых организмов. [4]
Прогресс в эколого-биологической области зависит от применения методов математического моделирования и использования вычислительных технологий. Одной из центральных задач биомоделирования является моделирование биологических популяций.
Компьютерное моделирование является одним из эффективных методов изучения сложных систем. Компьютерные модели проще и удобнее исследовать в силу их возможности проводить точные вычислительные эксперименты в тех случаях, когда реальные эксперименты затруднены из-за финансовых или физических препятствий, или могут дать непредсказуемый результат. Логичность и формализованность компьютерных моделей позволяет выявить основные факторы, определяющие свойства изучаемого объекта-оригинала (или целого класса объектов), в частности, исследовать отклик моделируемой физической системы на изменения ее параметров и начальных условий. [1]
Цель: разработать игру«Жизнь».
Априорные представления о модели: данная программа должна показыватьразвитие популяции. Пользователь может расставить начальную конфигурацию «живых» клеток, которые затем взаимодействуют согласно правилам уже без его участия (он является наблюдателем). Программадолжна содержать: поле клеток, кнопки управления циклом «Жизни», панель меню (создание нового чистого поля, выход из программы, правила игры).
Исходные данные: знания языка программирования C#, полученные на лекциях и семинарах.
Результат: программа, моделирующая развитие популяции, написанная на языке C#.
1. Модель «Жизнь» Джона Конуэя
Авторство этоймодели принадлежит математику Джону Конуэю. Он заинтересовался проблемой, предложенной в 1940-х годах известным математиком Джоном фон Нейманом, который пытался создать гипотетическую машину, которая может воспроизводить сама себя. Джону фон Нейману удалось создать математическую модель такой машины с очень сложными правилами. Конуэй попытался упростить идеи, предложенные Нейманом, и в конце концов ему удалось создать правила, которые стали правилами игры «Жизнь». Впервые описание этой игры было опубликовано в октябрьском выпуске 1970г. журнала ScientificAmerican, в рубрике «Математические игры» Мартина Гарднера.[5]
«Жизнь» Джона Конуэя отличается прекрасной сбалансированностью«правил игры», поэтому в ней можно получить уйму красивых конфигураций, изменяющихся со временем самым причудливым образом. конуэм игра компютерный
Опишем правила рассматриваемой математической модели. Место действия этой игры -- «вселенная» -- это разбитая на ячейки поверхность безграничная, ограниченная, или замкнутая. Каждая клетка на этой поверхности может находиться в двух состояниях: быть живой или быть мёртвой. Клетка имеет восемь соседей. Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по следующим правилам. Мёртвая клетка, рядом с которой ровно три живые клетки, оживает. Если у живой клетки есть две или три живые соседки, то эта клетка продолжает жить, в противном случае (если соседей меньше двух или больше трёх) клетка умирает (от «одиночества» или от «перенаселённости»).[6]
Гибель и рождение всех организмов происходит одновременно. Возникающие в игре ситуации очень похожи на реальные процессы, происходящие при зарождении, развитии и гибели живых организмов. Игра «Жизнь» относится к категории так называемых моделирующих игр -- игр, которые в той или иной степени имитируют процессы, происходящие в реальной жизни.[6]
2. Описание работы программы
Интерфейс и структура программы
При запуске программы на экране появляется «Титульный лист», на котором указана тема курсовой работы и имя автора (см. Приложение, рис.1). После нажатия на кнопку «Начать» открывается основное окно игры, на котором находится поле игры, кнопки управления циклом «Жизнь» и меню (см. Приложение, рис.2). Меню содержит следующие пункты: «Новая игра» -- очистить поле, «Справка» --правила игры, «Закрыть» -- закрыть программу. Варианты использования программы пользователем приведены на диаграмме (см. рис. 1).
Рис. 1.Диаграмма вариантов использования программы.
Программа состоит из нескольких основных форм: титульный лист и сама игра с игровым полем, схема программы приведена в блок-схеме (см. Приложение, рис. 4).
3. Описание наиболее интересной части программы
На взгляд разработчика, самой интересной частью программы является метод, отвечающий за смену поколений. Этот процесс показан на блок-схеме (см. Приложение, рис. 5).
Ниже представлен фрагмент кода, в котором происходит объявление переменных (см. рис. 2.).
Рис. 2.Объявление переменных.
Сначала вызывается метод, отвечающий за заполнения массивов конфигураций(см. рис. 3.).
Рис. 3.Метод, заполняющий массивы.
Далее прописан цикл, в котором проверяется количество «живых» (равных 1) клеток вокруг каждого элемента массива первичной конфигурации (см. рис. 4.). Он проверяет массив 3x3 вокруг элемента и считает количество клеток равных единице. Дальше прописывается условие:если элемент массива исходной конфигурации равен 1, то проверяется следующее условие:если количество «живых» клетокбольше 3 или меньше двух, то элемент массива последующей конфигурации того же индекса становится равным 0. В противном случае, если элемент этого массива равен 0, то проверяется условие: если количество «живых» клеток равно 3, тогда элемент массива последующей конфигурации того же индекса становится равным 1.
Рис. 4.Цикл с условием.
Рис. 5.Метод проверки конфигураций.
Следующий метод проверяет изменяется ли конфигурация в текущем поколении и возвращает логическую переменную flag_pr (см. рис. 5.). В зависимости от значения переменной пишем следующее условие.
Если переменная flag_pr возвращает значение true, то счетчик поколений увеличивается и выводится на форму в элементе label. В противном случае, игра заканчивается, что значит, что значение переменной flag_ меняется на противоположное и включаются все кнопки массива игрового поля и управления циклом «Жизни» (см. рис. 6).
Рис. 6.Условие переключения поколения.
Затем вызывается метод, который меняет цвета кнопок игрового поля согласно массиву следующего поколения, заполненному ранее (см. рис. 7).
Рис. 7.Метод смены поколения.
Заключение
Результатом данной курсовой работы является программа, реализованная на языке C#, с помощью которой возможно смоделировать развитие и угасание популяции.
Программа состоит из двух форм и имеет пользовательский графический интерфейс. Таким образом, программа полностью удовлетворяет априорным модельным представлениям.
В качестве перспектив развития данной программы можно отметить такие нереализованные возможности, как постепенная визуализация смен поколений. Можно увеличить размеры игрового поля, а также визуально улучшить интерфейс программы. Можно было бы добавить возможность пользователю самому выбирать цвет клеток игрового поля.
Список литературы
1. Дьяконов В.П. Новые информационные технологии. -- М.: СОЛОН-Пресс, 2005.
2. Чарльз Петцольд Программирование для MicrosoftWindows 8. Разработка приложений для WindowsStoreна C# и XAML. -- М.: Питер, 2014.
3. Шилдт Г. C# 4.0. Полное руководство. -- М.: Вильямс, 2011.
4. Портал искусственного интеллекта: портал [Электронный ресурс] -- Режим доступа: https://intellect.ml/igra-zhizn-na-primere-kletochnykh-avtomatov-6906. Дата обращения: 10.05.2018.
5. Игра «Жизнь» -- клеточный автомат: портал [Электронный ресурс] -- Режим доступа: http://textarchive.ru/c-2586159.html. Дата обращения: 06.05.2018.
6. Тоффоли Т., Марголус Н. Машины клеточных автоматов. -- М.: Мир, 1991.
7.
Приложение
Рисунок 1.
Рисунок 2. Игра «Жизнь».
Рисунок 3. Справка.
Рисунок 4. Блок-схема всей программы.
Рисунок 5. Блок-схема части программы.
Размещено на Allbest.ru
Подобные документы
Проектирование игры "Жизнь" и ее реализация в среде разработки Visual Studio 2010, версия .Net Framework 4.0. Особенности языка программирования C#, основных принципов ООП на языке C#. Проектирование пользовательского интерфейса. Описание алгоритмов.
курсовая работа [990,0 K], добавлен 18.04.2013Методы, основанные на применении математических функций: экстраполяционный и аналитический. Компьютерное моделирование структуры популяции. Информация для реализации модели. Основные сведения о Всемирной организации здравоохранения. Структура базы данных.
дипломная работа [873,7 K], добавлен 24.12.2013Формальная процедура классификации возможных взаимодействий численности популяций в экосистемах. Моделирование логистической структуры в Matlab. Составление дифференциальных уравнений и программы изменения количества популяций биологических сообществ.
курсовая работа [2,5 M], добавлен 02.03.2011Понятие и условие устойчивости бистабильной системы. Исследование модели "нагреватель - охлаждающая жидкость", построение фазового портрета стационарных состояний нагревателя. Компьютерное моделирование данной системы в пакете model vision studium.
курсовая работа [1,1 M], добавлен 07.06.2013Особенности моделирования биологических систем с использованием программы "AnyLogic". Влияние различных факторов на популяции жертв и хищников. Принципы имитационного моделирования и его общий алгоритм с помощью ЭВМ. Анализ результатов моделирования.
курсовая работа [922,2 K], добавлен 30.01.2016Значение компьютерного моделирования, прогнозирования событий, связанных с объектом моделирования. Совокупность взаимосвязанных элементов, важных для целей моделирования. Особенности моделирования, знакомство со средой программирования Турбо Паскаль.
курсовая работа [232,6 K], добавлен 17.05.2011Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.
дипломная работа [3,3 M], добавлен 18.02.2017Азартные игры и наблюдение за спортивными состязаниями. Моделирование методом Монте-Карло - мощное средство, позволяющее определять вероятность событий в азартных играх и спорте. Моделирование вероятности событий с помощью программы Microsoft Excel.
реферат [801,3 K], добавлен 13.05.2009Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.
курсовая работа [12,4 K], добавлен 18.06.2008Использование клеточных автоматов для моделирования гидродинамических и газодинамических течений. Применение клеточных автоматов в информатике. Основные правила и виды фигур, правила игры "Жизнь". Реализация эффективной системы распознавания образов.
научная работа [740,4 K], добавлен 23.06.2015