Example #1
0
        private int CalculateCurrentQi(GoPoint dian)
        {
            if (dian == null)
            {
                return(0);
            }
            dian.SetStatusAsVisited();
            visitedList_.Add(dian);
            int qi = 0;

            qi += CalculateNextQi(dian, dian.UP);
            qi += CalculateNextQi(dian, dian.DOWN);
            qi += CalculateNextQi(dian, dian.LEFT);
            qi += CalculateNextQi(dian, dian.RIGHT);
            return(qi);
        }
Example #2
0
        private int CalculateNextQi(GoPoint dian, GoPoint newDian)
        {
            int qi = 0;

            if (newDian == null || newDian.IsVisited())
            {
                return(0);
            }
            else if (newDian.Type == GoPointType.EMPTY)
            {
                newDian.SetStatusAsVisited();
                visitedList_.Add(newDian);
                qi += 1;
            }
            else if (newDian.Type == dian.Type)
            {
                qi += CalculateCurrentQi(newDian);
            }
            return(qi);
        }