public void BishopMoves() { for (int i = 0; i < 64; ++i) { IEnumerable <ChessMove> bishopMoves = ChessMove.BishopMoves(i); int distanceFromEdge = DistanceFromEdge(i); int count = 7 + 2 * distanceFromEdge; Assert.AreEqual(count, bishopMoves.Count(), $"# bishop moves from {ChessBoard.SquareName(i)}"); Hue hue = ChessBoard.HueOf(i); Assert.IsTrue(bishopMoves.All(cm => cm.DestinationSquare.Hue == hue), "Bishop stays on same color"); } }
internal override IEnumerable <ChessMove> GetValidMoves() => ChessMove.BishopMoves((int)CurrentSquare);