Репозиторий содержит заготовку игры "Жизнь" Джона Конвея, выполненную на языке C#.
Для запуска игры необходимо:
- Скачать инструментарий разработчика .NET.
- Клонировать репозиторий с помощью любого клиента Git, или скачать исходный код архивом.
- Перейти в директорию с исходным кодом игры и скомпилировать проект, выполнив команду:
dotnet build
. - Запустить игру командой
dotnet run
.
Текущая реализация поддерживает два варианта заполнения начальной конфигурации игрового поля, для этого при запуске нужно нажать:
Ввод
(Enter
) -- для заполнения глайдерным ружьём Госпера.- Любую другую клавишу -- для заполнения псевдослучайным образом.
С помощью пробела
(Space
) можно приостановить ход игры, а клавишей Отмена
(Escape
) игра завершается.
Игру необходимо доработать так, чтобы границы поля перестали быть пределами для развития текущей конфигурации. Иными словами, нужно сделать так, чтобы при движении глайдера он не "разбивался" о границу поля (точнее, не превращался в неподвижный блок), а продолжал движение с противоположной стороны поля (как, например, показано здесь).
Игра реализована с помощью объектно-ориентированного подхода, при котором код и данные объединяются в модулях (классах) согласно своему назначению. Так, здесь можно встретить:
- Класс
Ui
, отвечающий за работу с пользователем и отображение игрового поля на экране консоли. - Класс
BoardConfigurator
, заполняющий игровое поле согласно указанному способу. - Класс
Life
, содержащий данные, описывающие поле, и подпрограммы (методы) для работы с ним.
Логика вычисления количества соседей и обновления поля расположена в классе Life
, в методах CountNeighbours
и Iterate
, соответственно. Именно в них необходимо внести изменения, чтобы сделать поле "неограниченным".
Для работы с кодом можно использовать среду разработки Visual Studio Community или редактор кода Visual Studio Code.