private Boolean HasMoves(Location locTo, Location locFrom, PieceColor color) { using TemporaryPieceMove _ = board.PerformTemporaryMove(locFrom, locTo); if (!IsCheck(color)) { return(true); } return(false); }
private static bool CheckForSafeMoves(Location whiteLocation, Location locTo) { using (var tempBoard = new TemporaryPieceMove(board, whiteLocation, locTo, board.GetPiece(whiteLocation))) { tempBoard.Move(); if (!IsCheckForWhite(tempBoard.board)) { return(true); } } return(false); }
private static bool HasSafeMoves(Location whiteLocation, Location locTo, bool hasMoves) { var tempBoard = new TemporaryPieceMove(board, whiteLocation, locTo, board.GetPiece(whiteLocation)); using (tempBoard) { tempBoard.Swap(); if (!IsCheckForWhite(tempBoard.board)) { hasMoves = true; } } return(hasMoves); }
private bool HasMoves(PieceColor color) { foreach (var locFrom in board.GetPieces(color)) { foreach (var locTo in board.GetPiece(locFrom).GetMoves(locFrom, board)) { var old = board.GetPiece(locTo); bool result; //var temp = new TemporaryPieceMove(board, locFrom, locTo, old); using (var tmp = new TemporaryPieceMove(board, locFrom, locTo, old)) { tmp. result = !IsCheckForKing(color); } if (result) { return(true); } } } return(false); }