Skip to content

Repository files navigation

Игра "Жизнь" на OpenGL

Добро пожаловать в игру "Жизнь", реализованной с использованием OpenGL и C++ для Windows. Это приложение представляет собой реализацию игры "Жизнь" (Game of Life) на C++ с использованием OpenGL для графического отображения. Игра была разработана для Windows и демонстрирует основные принципы клеточных автоматов, предложенные математиком Джоном Конвеем в 1970 году.

Обзор проекта

Игра "Жизнь" представляет собой симуляцию эволюции популяции, где каждая клетка на сетке может быть либо "живой" (черной), либо "мертвой" (белой). Состояние каждой клетки в следующем поколении определяется количеством живых соседей в текущем поколении по следующим правилам:

  • Клетка остается живой, если у нее 2 или 3 живых соседа.
  • Мертвая клетка становится живой, если у нее ровно 3 живых соседа.
  • Во всех остальных случаях клетка умирает или остается мертвой.

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

Описание приложения

Игра "Жизнь" моделирует поведение клеток на двумерной сетке, где каждая клетка может быть либо "живой" (1), либо "мертвой" (0). Состояние клеток обновляется в зависимости от количества живых соседей, согласно следующим правилам:

  • Живая клетка остается живой, если у нее 2 или 3 живых соседа; иначе она умирает.
  • Мертвая клетка становится живой, если у нее ровно 3 живых соседа.

Как это работает

  • Инициализация сетки: При запуске игры создается квадратная сетка заданного размера, заполненная случайными значениями (0 или 1).
  • Обновление состояния: Каждое обновление состояния клеток происходит по таймеру, где применяются правила игры для каждой клетки.
  • Отрисовка: Используя OpenGL, приложение отображает текущую сетку на экране. Живые клетки окрашиваются в черный цвет, а сетка отображается серыми линиями.
  • Взаимодействие с пользователем: Пользователь может щелкнуть по клеткам, чтобы изменить их состояние, а также изменять размер сетки и скорость обновления.

Особенности

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

Установка и запуск

Для запуска проекта вам потребуется:

  1. Visual Studio с поддержкой C++ и OpenGL.
  2. Windows SDK для работы с Windows API.
  3. Убедитесь, что у вас установлены необходимые библиотеки для работы с OpenGL (например, opengl32.lib).

Шаги для запуска:

  1. Клонируйте репозиторий:

    git clone git@github.com:AsuRaHan/game_of_Life_cpp.git
    
  2. Откройте проект в Visual Studio.

  3. Соберите проект и запустите его.

Сборка через гитхаб

git tag -a v1.0.0 -m "Версия 1.0.0"

```bash
git push origin v1.0.0

About

Игра «Жизнь»

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages