Игра "Жизнь" на Си - C (СИ)

Формулировка задачи:

Здравствуйте! Было дано задание написать игру "жизнь" без графики на языке Си. Сразу говорю, что в программировании я пока новичок, так что много чего могу не знать. Вот мой принцип реализации: У нас есть 2 двумерных массива, A и Б, А отвечает за текущее поколение, а Б за следующее. В самом начале "клетки" массива А рандомно заполняются значениям(0 - если клетка мертва и 1 - если есть жизнь). Далее с помощью циклов for мы проверяем каждую клетку массива Б, где условие - если у клетки б с индексами, к примеру, 3 и 5 значение 0,то тогда если есть 3 живых соседа из массива А( то есть клетки массива А но с координатами 3+-1 и 5+-1), то клетке Б присваивается значение 1, если у клетки уже было значение 1(проверяем такую же клетку из массива А), то если у нее есть 2 или 3 живых соседа из массива А, то ничего не делаем и клетка продолжает жить, а если больше или меньше то присваиваем 0. После проверки каждой клетки мы все полученные значения массива Б записываем в массив А и так по кругу. Признак окончания игры - если после выполнения цикла( еще до того как мы перенесли значения из б в а) значения в массивах уже равны(получается статическая фигура) или у всех клеток массива Б - значение 0. Вопрос: Как мне задать условие так, чтобы он задавал значение 1 если ТОЛЬКО 3 соседа имеют значение 1. Можно конечно вручную в if вбивать (Если M[i+1][j-1] =1 и так далее), но это очень долго и муторно... Надеюсь вы мне поможете

Код к задаче: «Игра "Жизнь" на Си - C (СИ)»

textual
neighbors += M[x + i][y + j];

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

15   голосов, оценка 4.133 из 5


СОХРАНИТЬ ССЫЛКУ