示例#1
0
        public Dictionary <Directions, List <IPieceType> > CheckAlongCompassPoints(string originalGridRef, List <Directions> locations, IPieceType pieceToPlay)
        {
            var countersAlongLine = new Dictionary <Directions, List <IPieceType> >();

            foreach (Directions direction in locations)
            {
                var listOfStuffToTurnOver = new List <IPieceType>();
                var gridRef = originalGridRef;
                do
                {
                    var neighbouringCounter = _gridRefFinder.NeighbouringSquare(direction, gridRef, _board);
                    if (neighbouringCounter == null)
                    {
                        break;
                    }
                    if (neighbouringCounter.Colour != pieceToPlay.Colour)
                    {
                        listOfStuffToTurnOver.Add(neighbouringCounter);
                    }
                    else
                    {
                        countersAlongLine.Add(direction, listOfStuffToTurnOver);
                        break;
                    }

                    gridRef = _gridRefFinder.FindGridRef(direction, gridRef);
                } while (true);
            }
            return(countersAlongLine);
        }