Я бы определил перечисление со значениями Propogate, Die, NoChange.
Затем создайте список / массив с элементом этого типа для каждого числа возможных соседей (от 0 до 8). Затем пользователь может установить этот список каким-либо образом (возможно, список перечислений, разделенных запятыми, в виде строк, который разделяется и приводится к типу перечисления).
Тогда все, что вам нужно сделать, это сосчитать соседей, выполнить поиск и действовать соответственно.
var UserActionList =
"Die, Die, NoChange, NoChange, Propogate, Propogate, Die, Die, Die"
.Split(',').Select(s => Enum.Parse(typeof(CellAction), s).ToArray();
// Count neighbours
swtich(UserActionList[NeighboursCount])
{
case Die:
/////
case Propogate:
/////
}