Проблема с логикой клеточного автомата

Я очень начинающий разработчик, и решил сделать клеточный автомат в консоли по типу WireWorld. Всё шло гладко и без багов, до того момента пока я не начал программировать логику игры.

void logicApply()
{
    int xlog = 1; int ylog = 1;
    while (ylog < height)
    {
        while (xlog < width)
        {
            if (map[ylog][xlog] = WIRE)
            {
                for (int b = -1; b <= 1; b++)
                {
                    for (int a = -1; a <= 1; a++)
                    {
                        if (map[ylog + b][xlog + a] == SOURCE || map[ylog + b][xlog + a] == WSWIRE)
                        {
                            map[ylog][xlog] = WSWIRE;
                        }
                    }
                }
            }
            xlog++;
        }
        ylog++;
    }
}

Здесь я написал логику только для клетки провода. Ожидание: Генератор передаёт сигнал

Реальность:

Что происходит?

Почему код создаёт призрачные клетки сверху, на которые правильно действует логика, но на настоящие клетки нет? Я 3 раза переписывал логику, но итог всегда один и тот-же.


Ответы (0 шт):