public void RookMoves() { for (int i = 0; i < 64; ++i) { IEnumerable <ChessMove> rookMoves = ChessMove.RookMoves(i); Assert.AreEqual(14, rookMoves.Count(), $"14 moves from square {ChessBoard.SquareName(i)}"); int rank = ChessBoard.RankOf(i), file = ChessBoard.FileOf(i); foreach (ChessMove cm in rookMoves) { int destRank = (int)cm.DestinationSquare.Rank, destFile = (int)cm.DestinationSquare.File; Assert.IsTrue(rank == destRank || file == destFile, $"correct rank/file @ {cm}"); } } }
internal override IEnumerable <ChessMove> GetValidMoves() => ChessMove.RookMoves((int)CurrentSquare);