Добро пожаловать в игру "Жизнь", реализованной с использованием OpenGL и C++ для Windows. Это приложение представляет собой реализацию игры "Жизнь" (Game of Life) на C++ с использованием OpenGL для графического отображения. Игра была разработана для Windows и демонстрирует основные принципы клеточных автоматов, предложенные математиком Джоном Конвеем в 1970 году.
Игра "Жизнь" представляет собой симуляцию эволюции популяции, где каждая клетка на сетке может быть либо "живой" (черной), либо "мертвой" (белой). Состояние каждой клетки в следующем поколении определяется количеством живых соседей в текущем поколении по следующим правилам:
- Клетка остается живой, если у нее 2 или 3 живых соседа.
- Мертвая клетка становится живой, если у нее ровно 3 живых соседа.
- Во всех остальных случаях клетка умирает или остается мертвой.
Этот проект использует OpenGL для отрисовки сетки и клеток, а также для обработки событий мыши для интерактивного взаимодействия с игровым полем.
Игра "Жизнь" моделирует поведение клеток на двумерной сетке, где каждая клетка может быть либо "живой" (1), либо "мертвой" (0). Состояние клеток обновляется в зависимости от количества живых соседей, согласно следующим правилам:
- Живая клетка остается живой, если у нее 2 или 3 живых соседа; иначе она умирает.
- Мертвая клетка становится живой, если у нее ровно 3 живых соседа.
- Инициализация сетки: При запуске игры создается квадратная сетка заданного размера, заполненная случайными значениями (0 или 1).
- Обновление состояния: Каждое обновление состояния клеток происходит по таймеру, где применяются правила игры для каждой клетки.
- Отрисовка: Используя OpenGL, приложение отображает текущую сетку на экране. Живые клетки окрашиваются в черный цвет, а сетка отображается серыми линиями.
- Взаимодействие с пользователем: Пользователь может щелкнуть по клеткам, чтобы изменить их состояние, а также изменять размер сетки и скорость обновления.
- Интерактивное поле: Пользователь может кликать по клеткам, чтобы изменять их состояние.
- Динамическое изменение размера сетки: Возможность изменять размер игрового поля через пользовательский интерфейс.
- Автоматическое обновление: Игра может автоматически обновляться по таймеру, демонстрируя эволюцию.
- Случайная инициализация: Возможность случайного заполнения сетки для начала новой игры.
- Очистка поля: Функция для полной очистки игрового поля.
Для запуска проекта вам потребуется:
- Visual Studio с поддержкой C++ и OpenGL.
- Windows SDK для работы с Windows API.
- Убедитесь, что у вас установлены необходимые библиотеки для работы с OpenGL (например,
opengl32.lib).
Шаги для запуска:
-
Клонируйте репозиторий:
git clone git@github.com:AsuRaHan/game_of_Life_cpp.git
-
Откройте проект в Visual Studio.
-
Соберите проект и запустите его.
git tag -a v1.0.0 -m "Версия 1.0.0"
```bash
git push origin v1.0.0