0

我正在为一项任务开发一个简单的游戏,除了我似乎无法正确完成的部分之外,它是完整的。游戏必须用最近的 20 个动作填充一个数组,并在游戏结束后打印出这些动作的总数。例如,用户可能会进行 25 次移动,但只会打印 6 - 25 次移动。数组长度也必须== 20。我将插入相关方法:

    public void fillMoveStore(int [] array, int into)
{
    if (moveCount <= array.length)
    {
        array[moveCount - 1] = into;
    }
    else
    {
        for(int i = 1; i <= (array.length - 1); i++)
        {
            array[i] = array[i - 1];
        }
        array[array.length - 1] = into;
    }   
}

public void displayMoves(int [ ] array)
{
    for(int i = 0; i <= (array.length -2); i++)
    {
        System.out.print(array[i] + outputText[34]);
    }
    System.out.print(array[array.length - 1] + outputText[33]);
}

除此之外,在调用 fillMoveStore(moveStore, walkInto) 之前, moveCount 会递增。我是java新手......所以任何帮助或提示将不胜感激!如果需要更多信息,请告诉我,提前致谢

4

2 回答 2

0

只用一个ArrayList,每一个动作,只用

myArray.add(move);
if(myArray.size() > 20){
    myArray.remove(0);
}
于 2013-05-19T15:25:27.313 回答
0

问题是这条线

array[i] = array[i - 1];

你把它弄反了。您应该将元素向下移动以在数组末尾腾出空间,但您将它们向上移动。尝试扭转它。

array[i-1] = array[i];
于 2013-05-19T15:25:34.660 回答