public static IFieldsGraph ShouldHaveWhiteFieldAt(this IFieldsGraph graph, int row, int column) { var whiteField = graph.GetWhiteField(); whiteField.RowIndex.ShouldEqual(row, "Row should be {0} but was {1}"); whiteField.ColumnIndex.ShouldEqual(column, "Column should be {0} but was {1}"); return(graph); }
private void InitliazeBlackBuckets(IFieldsGraph fieldsGraph) { _bestWhiteStonePostion = fieldsGraph.GetWhiteField().RowIndex; var blackFields = fieldsGraph.GetBlackFields(); _blackFields = blackFields.ToHashSet(); _blackFieldsByRowIndex = _fieldsGraph.RowCount.Times((row) => new { row, fields = new HashSet <Field>() }) .ToDictionary(item => item.row, item => item.fields); blackFields.Each(field => _blackFieldsByRowIndex[field.RowIndex].Add(field)); }
private BoardJumpTree SelectWhiteFieldNode() { var whiteField = _fieldsGraph.GetWhiteField(); if (whiteField.Selected == false) { return(new BoardJumpTree(_fieldsGraph, new SelectWhiteFieldMove(whiteField), null)); } return(new BoardJumpTree(_fieldsGraph, new EmptyPhutballMove(), null)); }
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; }
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); }
public Field GetWhiteField() { return(_fieldsGraph.GetWhiteField()); }
public AverageBlackStoneToTargetBorderDistance(IPlayersState playersState, IFieldsGraph actualGraph, int averageDistanceWeight) { _targetBorder = playersState.CurrentPlayer.GetTargetBorder(actualGraph); _originalDistance = _targetBorder.GetDistanceFrom(actualGraph.GetWhiteField()); _averageDistanceWeight = averageDistanceWeight; }
public BlackStoneToTargetBorderCount(IPlayersState playersState, IFieldsGraph actualGraph, int goodBlackFieldsWeight) { _targetBorder = playersState.CurrentPlayer.GetTargetBorder(actualGraph); _originalDistance = _targetBorder.GetDistanceFrom(actualGraph.GetWhiteField()); _goodBlackFieldsWeight = goodBlackFieldsWeight; }
public void should_have_white_field_on_the_same_index_as_original() { _clonedGraph.GetWhiteField().Id.ShouldEqual(Sut.GetWhiteField().Id); }