public void SetNeighbors() { Neighbors = Board.GetNeighboringCells(Index); foreach (GoCell lCell in Neighbors) { Block.AdjacentBlocks.Plus(lCell.Block); } // NeighborCnt = Neighbors.Count; }
protected void MarkUnsurroundablePoints() { for (int lIndex = 0; lIndex < Board.Coord.BoardArea; lIndex++) { if (Safety[lIndex].IsUndecided) { bool[] lFoundAlive = new bool[2]; lFoundAlive[0] = lFoundAlive[1] = false; foreach (GoCell lGoCell in Board.GetNeighboringCells(lIndex)) { if (Safety[lGoCell.Index].IsAlive) { lFoundAlive[lGoCell.Color.ToInteger()] = true; } } if (lFoundAlive[0] && lFoundAlive[1]) { Safety[lIndex] = new SafetyStatus(SafetyFlag.Unsurroundable); } } } }