void isCheck()
    {
        PieceIdentity KingPiece = BoardPieces[PieceIdentity.getKing(BoardPieces)[0, 0], PieceIdentity.getKing(BoardPieces)[1, 0]];

        if (KingPiece.isTileUnderDanger(BoardPieces, PieceIdentity.getKing(BoardPieces)[0, 0], PieceIdentity.getKing(BoardPieces)[1, 0], isWhiteTurn))
        {
            string player   = (isWhiteTurn) ? "White" : "Black";
            string opponent = (!isWhiteTurn) ? "White" : "Black";
            checkBy.text = "You are under Check by " + opponent + " Team.";
        }
        else
        {
            checkBy.text = "";
        }
    }
    void isCmOrSm()
    {
        bool noMoves = true;

        for (int i = 0; i < 8; i++)//checkMate or staleMate
        {
            for (int j = 0; j < 8; j++)
            {
                if (BoardPieces[i, j] == null)
                {
                    continue;
                }
                if (BoardPieces[i, j].isWhitePiece != isWhiteTurn)
                {
                    continue;
                }
                int[,] moves = BoardPieces[i, j].getCheckArray(BoardPieces[i, j].isAllowed(BoardPieces, true));//check moves
                if (BoardPieces[i, j].movePossible(moves))
                {
                    Debug.Log("noMoves false for ==" + i + "," + j);
                    noMoves = false;
                    break;
                }
            }
            if (!noMoves)
            {
                break;
            }
        }
        PieceIdentity KingPiece = BoardPieces[PieceIdentity.getKing(BoardPieces)[0, 0], PieceIdentity.getKing(BoardPieces)[1, 0]];

        Debug.Log("noMoves==" + noMoves);

        if (noMoves)
        {
            if (KingPiece.isTileUnderDanger(BoardPieces, KingPiece.currX, KingPiece.currY, isWhiteTurn))//checkmate
            {
                win = (isWhiteTurn) ? -1 : 1;
            }
            else//stalemate
            {
                win = 2;
            }
        }
    }
    void selectPiece()
    {
        Debug.Log("outside2=" + BoardPieces[mouseOverX, mouseOverY]);

        PieceIdentity KingPiece = BoardPieces[PieceIdentity.getKing(BoardPieces)[0, 0], PieceIdentity.getKing(BoardPieces)[1, 0]];

        Debug.Log("outside3=" + BoardPieces[mouseOverX, mouseOverY]);
        if (BoardPieces[mouseOverX, mouseOverY] != null)
        {
            if (isWhiteTurn == BoardPieces[mouseOverX, mouseOverY].isWhitePiece)
            {
                int[,] moves = BoardPieces[mouseOverX, mouseOverY].isAllowed(BoardPieces, true);
                moves        = BoardPieces[mouseOverX, mouseOverY].getCheckArray(moves);

                if (BoardPieces[mouseOverX, mouseOverY].movePossible(moves))
                {
                    validMoves = moves;
                    BoardSelection.BoardSelectionObject.createColorSelection(validMoves, mouseOverX, mouseOverY);
                    currentPiece = BoardPieces[mouseOverX, mouseOverY];
                }
            }
        }
    }