Решил сделать очередную версию игры "Жизнь", на этот раз на Qt (до этого делал на чистом С). Не пойму, как правильно это сделать. Очевидно, что нужно применять объектно-ориентированный подход и представлять особей в виде объектов определенного класса, размещенных внутри какой-то таблицы или матрицы. Но как реализовать взаимодействие этих особей? То есть, особь должна знать о том, что находится рядом с ней, в соседних ячейках таблицы.
Upd. ООП хочу использовать, так как собираюсь делать более продвинутую версию, со всякими характеристиками, мутациями, скрещиванием и т.д.
Создать класс "бактерии", с указанием координат, "уровня", уникального ID(пригодится в будущем). В майн классе создать коллекцию(наподобие Map) и процедурой проверки условий "жизни", добавить таймер. В Map заносить с ключом типа "координатаХ-координатаУ"(по этому ключу находить "соседей"). В таймере цикл перебора коллекции, с отрисовкой результата в конце - визуализация по вкусу(хоть OpenGL). Для возможностей "расширения" и "мутации" - желательно уже использовать родительский и дочерние классы, тогда можно описать различные типы "монстров" и их уникальное поведение.
Очевидно, что нужно применять объектно-ориентированный подход и представлять особей в виде объектов
Совершенно не очевидно. Громоздить объект вокруг, фактически, булевой переменной - преступление против здравого смысла.
Достаточно завернуть в объект саму матрицу.