Beispiel #1
0
        private string CheckForStalemate(string board)
        {
            if (GameHistory.Count > 1)
            {
                List <char[]> lastTwoMoves = GameHistory
                                             .Skip(GameHistory.Count - 2)
                                             .Select(m => m.ToCharArray())
                                             .ToList()
                ;

                char[] lastMove = lastTwoMoves.First();
                char[] thisMove = lastTwoMoves.Last();

                //50 Move Rule
                string result = Stalemate_50MoveRule(lastMove, thisMove);
                if (result != "GameOn")
                {
                    return(result);
                }


                //Solitary King vs too few pieces.
                result = Stalemate_TooFewPieces(thisMove);
                if (result != "GameOn")
                {
                    return(result);
                }
            }
            ;

            return("GameOn");
        }