Пример #1
0
        public void KingMoves()
        {
            for (int i = 0; i < 64; ++i)
            {
                IEnumerable <ChessMove> kingMoves = ChessMove.KingMoves(i);
                int dist   = DistanceFromEdge(i, out int rdist, out int fdist);
                int nmoves = 0;
                switch (dist)
                {
                case 0:
                    nmoves = (rdist > 0 || fdist > 0) ? 5 : 3;
                    break;

                default: nmoves = 8; break;
                }
                Assert.AreEqual(nmoves, kingMoves.Count(), $"# King moves from {i}");
            }
        }
Пример #2
0
 internal override IEnumerable <ChessMove> GetValidMoves() => ChessMove.KingMoves((int)CurrentSquare);