Esempio n. 1
0
        internal override void MakeMove(PieceMove move, Desk desk)
        {
            List <string> moves = playersMoves.GetPlayerMoves(playerColor);

            lastMove = new PieceMove(playerColor, moves[random.Next(moves.Count)]);

            desk.UpdatePiecesOnDesk(lastMove, playerColor);
        }
Esempio n. 2
0
        public bool IsMateAfterMove(string move, Vectors vector)
        {
            bool      result;
            PieceMove pieceMove          = new PieceMove(inGameColor, move);
            ForsythEdwardsNotation copyN = (ForsythEdwardsNotation)desk.notation.Clone();
            Desk  copyDesk  = new Desk(copyN);
            Moves copyMoves = new Moves(copyDesk);

            copyDesk.UpdatePiecesOnDesk(pieceMove, inGameColor);
            ChessPlayer op = new Bot(inGameColor.FlipColor(), copyMoves, copyDesk);

            result = copyDesk.IsKingInDanger(copyMoves.GetPlayerMoves(op.playerColor), inGameColor);

            if (result && vector.status != "recalculate")
            {
                vector.status = "recalculate";
                RecalculatedPiecesPosition.Add(pieceMove.from);
            }
            return(result);
        }
Esempio n. 3
0
 internal override void MakeMove(PieceMove move, Desk desk)
 {
     desk.UpdatePiecesOnDesk(move, playerColor);
 }