Игра "Жизнь" на Си - 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 и так далее), но это очень долго и муторно... Надеюсь вы мне поможете

Решение задачи: «Игра "Жизнь" на Си»

textual
Листинг программы
neighbors += M[x + i][y + j];

Объяснение кода листинга программы

В данном коде выполняется сложение значения переменной neighbors с элементом массива M по индексам x + i и y + j. Список действий:

  1. Выполняется приведение типов значения neighbors к типу массива M.
  2. По индексам x + i и y + j происходит обращение к элементу массива M.
  3. Полученное значение прибавляется к переменной neighbors.

Оцени полезность:

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