Хорошо. Я когда начинал писать не знал как реализовать стыки у клеток, у меня было 2 идеи:
1. Сделать все поле не в виде клеток, а в виде полос (визуально бы выглядело так же, но в реализации совсем по-другому) но не получилось.
2. Сделать все поле в виде клеток, но как то решить проблему стыков, т.е у меня должно работать следующим образом: когда я закрашиваю правую сторону клетки, то у правой клетки должна закрашиваться правая сторона, чисто визуально кажется что это сторона общая, нг состояние у каждой клетки - свое.
Выбрав 2 варик я начал шаманить, со стыками у клеток одного ряда проьлем не было, закрасил правую сторону - код закрашивает левую сторону у следующего квадратика, а если квадратик крайний, то ничего не произойдёт (там нет условия на проверку крайней клетки, там по интереснее).
Но когда дело касается верхних и нижних граней, тут уже геморой полный.
Объясню на примере:
У нас есть 1 строчка в которой 3 клетки и 2 строчка в которой 5 клеток, id начинается с нуля, когда я закрашиваю низ клетки с id 0, то я должен поменять состояние клетки под ней. А как её найти??? Потому что просто прибавив 5 я не решу проблему, это будет работать только в 1 и 2 строчке, а в 5 и 6 строчке кол-во клеток другое и решение должно быть другим, так как там надо прибавлять уже не 5 а все 14 клеток (я точно не помню, я говорю примерно). Я решил проблему следующим образом: я просто каждой клеточке, давал знать в каком она ряду (хотя сейчас понимаю, что можно было сделать по-другому) и исходя из ряда прибавлять или убавлять нужное кол-во клеток