跳转游戏中嵌套循环的问题

时间:2019-04-24 21:07:18

标签: c++

我需要帮助来创建嵌套的for循环。这是针对“跳跃游戏”的,基本上有一个数组,里面有一些数字。每个数组的数字[位置] 有一定次数可以跳到尽头。例如:[2 3 1 1 4 0],所以array[0] = 2可以跳跃2或1个位置,array[1] = 3可以跳跃3,2或1个位置。例如:[3 2 1 0 4 0],因此您基本上无法到达阵列中的位置。

我已经做了一段时间了,无法提出循环。 readFromFile基本上只是创建数组大小。现在已经有了大小,我需要检查每个卡住的数字。

void readFromFile(int list[], int& size, ifstream& infile)
{
    infile >> list[size];

    while (!infile.eof()) // Loops until end of file is reached
    {
        size++;
        infile >> list[size];
    }

    infile.close();
    return;

}

bool getToLastIndex(int list[], int size)
{
    for(i=0; i< size;i++)
    {
        if(list[i] == 0)
            break;
        j=i+list[i]; //Resetting it for a new jump or section on array?
        i=j;

        for(int j=0; j <= list[i]; j++)
        {
            list[j] == return true;
        }
    }
}

我希望能够使用 getToLastIndex(list,size);

if(getToLastIndex() == true)
{
    cout << "Mario FTW" << endl; // Got to the end
}
else
    cout << "This bridge has the workings of bowser all over it >:( " << endl; //Couldnt make it to the end

作业以马里奥为主题...我没有选择输出

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

void readFromFile(int list[], int &size, ifstream& infile)
{
    size = 0;
    if(!infile.is_open())
        return;

    while(!infile.eof())
    {
        infile >> list[size++];
    }
    infile.close();
}

bool isTheLastReachable(int list[], int index, int size)
{
    if(index < size)
    {
        if(index)
        {
            for(int i = 0; i < list[index]; ++i)
                if(isTheLastReachable(list, index + i, size))
                    return true;

            return false;
        }
        else
            return false;
    }
    return true;
}


bool getToLastIndex(int list[], int size)
{
    return isTheLastReachable(list, 0, size);
}