cocos2d-x-3.2的一个象棋AI类功能不能读取内存的问题

在学着改编一个象棋游戏的时候出现了一个有点纠结的问题,在其中的AI部分我想分容易和困难两个难度;

下面是容易的简单说明的部分:(下面的代码是产生一个步骤让AI自动控制走棋,传入的是游戏场景的this指针,下面中的函数是一些处理函数),这个难度调试的时候是正常的完全没有问题;
Step* AI::genStep(SceneGameReal* game)
{
Array* allMove = allPossibleMove(game);
int highScore = -100000;//初始化一个最高的走棋得分
Step* ret;

for (int i = 0; i < allMove->count(); i++)
{
    Step* step = (Step*)allMove->getObjectAtIndex(i);
    VirtualMove(game, step);
    int score = calcScore(game);
    if (score > highScore)
    {
        highScore = score;
        ret = step;
    }
    RVirtualMove(game, step);
}

return ret;

}

下面是困难模式的AI产生步骤的部分:(传入的level是一个循环处理的等级也就是递归次数,下面的_step ,_level 是定义在AI类中的public中的成员用于整个类中其他函数中的赋值),但是换成困难模式的时候就直接报错了,说是,_step,_level不能读取内存,然后this指针(也就是AI)的数据也是0xcdcdcdcdcd,但是换容易难度的话也是传入的游戏场景,为何困难模式就不行了?我知道应该是我的内存机制掌握的不是很好,不过百度很少有这个问题的答案.
Step* AI::genStep(SceneGameReal* game, int level)
{
_step = NULL;
_level = level;
getMaxScore(game, level, 3000000);//设置一个很大的数3000000至少让求第一个二级局面的时候不剪枝
return NULL;
}