private List <ChessPosLogic> FindPath(ChessPosLogic mData, ChessPosLogic tarData)
    {
        string tarPos             = tarData.GlobalPos;
        string mPos               = mData.GlobalPos;
        List <ChessPosLogic> path = new List <ChessPosLogic>();

        if (mData.CsType == ChessBoardPosType.RailWay && tarData.CsType == ChessBoardPosType.RailWay)
        {
            if (GetChessType() == ChessType.GongBing)
            {
                path = AStar.AStarEx(mData, tarData);
            }
            else
            {
                int[] myIPos  = GetGlobalTB(mPos);
                int[] tarIPos = GetGlobalTB(tarPos);
                if (IsNeedTurn(mData, tarData))//需要转弯
                {
                    FindPathRecWithTurn(mData, tarData, path);
                }
                else if (myIPos[0] != tarIPos[0] && myIPos[1] != tarIPos[1])//不能到达
                {
                }
                else  //一般寻路
                {
                    FindPathRec(mData, tarData, path);
                }
            }
        }
        else
        {
            foreach (var item in mData.GetNodes)
            {
                if (item == tarData)
                {
                    if (tarData.CsType == ChessBoardPosType.XY && tarData.IsOccupied)
                    {
                        return(path);
                    }
                    path.Add(item);
                }
            }
        }
        return(path);
    }