Проблема с логикой клеточного автомата
Я очень начинающий разработчик, и решил сделать клеточный автомат в консоли по типу 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 раза переписывал логику, но итог всегда один и тот-же.
