Example #1
0
        public int GetValue(JumpNode valueSubject)
        {
            var blackFields = valueSubject.ActualGraph.GetBlackFields();

            if (blackFields.Count() == 0)
            {
                return(0);
            }
            var averageDistance = blackFields.Where(field => _targetBorder.GetDistanceFrom(field) < _originalDistance).Average(field => _targetBorder.GetDistanceFrom(field));

            return((int)(averageDistance * _averageDistanceWeight));
        }
Example #2
0
        public int GetValue(JumpNode valueSubject)
        {
            var blackFields = valueSubject.ActualGraph.GetBlackFields();

            if (blackFields.Count() == 0)
            {
                return(0);
            }
            var goodBlackFields = blackFields.Count(field => _targetBorder.GetDistanceFrom(field) < _originalDistance);

            return(goodBlackFields * _goodBlackFieldsWeight);
        }
Example #3
0
        public int GetValue(IFieldsGraph valueSubject)
        {
            var whiteField  = valueSubject.GetWhiteField();
            var rawDistance = _winingBorder.GetDistanceFrom(whiteField);

            if (rawDistance == 0)
            {
                return(_winingBorder.WinValue);
            }
            var distanceBetweenBorders = DistanceBetweenBorders();

            if (rawDistance >= distanceBetweenBorders)
            {
                return(_winingBorder.LooseValue);
            }
            return(distanceBetweenBorders - rawDistance);
        }
Example #4
0
 public AverageBlackStoneToTargetBorderDistance(IPlayersState playersState, IFieldsGraph actualGraph, int averageDistanceWeight)
 {
     _targetBorder          = playersState.CurrentPlayer.GetTargetBorder(actualGraph);
     _originalDistance      = _targetBorder.GetDistanceFrom(actualGraph.GetWhiteField());
     _averageDistanceWeight = averageDistanceWeight;
 }
Example #5
0
 public BlackStoneToTargetBorderCount(IPlayersState playersState, IFieldsGraph actualGraph, int goodBlackFieldsWeight)
 {
     _targetBorder          = playersState.CurrentPlayer.GetTargetBorder(actualGraph);
     _originalDistance      = _targetBorder.GetDistanceFrom(actualGraph.GetWhiteField());
     _goodBlackFieldsWeight = goodBlackFieldsWeight;
 }