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); }
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); }
internal override void MakeMove(PieceMove move, Desk desk) { desk.UpdatePiecesOnDesk(move, playerColor); }