Example #1
0
        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);
                    }
                }
            }
        }